docker 搭建单机PostgreSQL操作详解

 更新时间:2025年04月02日 11:08:39   作者:逆风飞翔的小叔  
本文通过实际案例操作演示了如何基于Docker搭建pg的完整过程,并补充了pg数据库操作的常用命令和授权命令,感兴趣的朋友一起看看吧

一、前言

在实际项目中,PostgreSQL具有很多使用场景,为了方便应用开发时快速接入和调试,需要有PostgreSQL环境,本文演示如何基于linux环境搭建单节点postgresql完整操作过程。

二、前置准备

2.1 服务器环境

基于centos7以上版本的系统,虚拟机或云服务一台,配置不低于2C4G。

2.2 docker环境

提前在服务器安装docker环境,后面需要基于docker安装PostgreSQL。

三、docker安装PostgreSQL过程

3.1 获取PostgreSQL镜像

使用下面的命令获取镜像

docker pull postgres

3.2 启动容器

3.2.1 创建数据卷目录

为了后续pg数据的持久化,需要提前创建一个数据卷映射目录

mkdir /usr/local/soft/pg/data

3.2.2 启动pg容器

使用下面的命令启动postgresql的容器

docker run -d \
  --name postgres \
  -e POSTGRES_USER=root\
  -e POSTGRES_PASSWORD=123456 \
  -e ALLOW_IP_RANGE=0.0.0.0/0 \
  -e POSTGRES_DB=postgres \
  -v /usr/local/soft/pg/data:/var/lib/postgresql/data \
  -p 54132:5432 \
  postgres:latest

参数说明:

  • -d ,以后台进程启动;
  • --name ,指定容器的名字为 :root;
  • POSTGRES_USER=postgres ,指定初始化的连接账户;
  • POSTGRES_PASSWORD=123456 ,指定初始化的连接密码;
  • ALLOW_IP_RANGE=0.0.0.0/0 ,指定允许所有的客户端可以连接;
  • POSTGRES_DB=postgres ,指定默认的数据库名称;
  • -v /usr/local/soft/pg/data:/var/lib/postgresql/data ,指定pg数据库的数据卷;
  • -p 5432:5432 ,容器与宿主机的映射端口,默认为5432 ;

容器运行成功,可以看到启动了一个pg的容器;

3.3 客户端测试连接数据库

本地使用navicat连接pg数据库,使用上述初始化的连接信息

四、创建数据库与授权

和mysql在使用的时候类似,为了保证操作pg数据库的安全性,需要进行相关的授权操作,pg的授权与mysql数据库的授权有所不同,接下来看具体的操作演示过程。

4.1 进入PG容器

找到容器ID,使用下面的命令进入容器

docker exec -it 容器ID /bin/bash

4.2 PG常用操作命令

4.2.1 进入命令行

进入容器之后,使用下面的命令进入PG的操作命令行,类似于mysql的命令行工具

psql -U postgres -h 服务器IP -p 54132 postgres

输入密码,验证成功后,就来到下面的命令行操作界面:

4.2.2 常用操作命令

1)列出当前所有数据库

\l

2)列出当前数据库的所有表

默认情况下,登录进来使用的是postges这个数据库,使用下面的命令可以查看所有表

3)切换数据库

使用下面的命令切换到另一个数据库

\c 数据库名称

4)创建数据库

CREATE DATABASE 数据库名称;

5)创建账户

CREATE USER 用户名 WITH PASSWORD '密码';

6)账户授权

pg数据库中对于连接的账户需要进行授权,有数据库授权,表授权等,下面分别是数据库授权,表授权的命令

一般下面这两个命令是连起来用的,即先对数据库的连接账户授权,仅仅授权数据库还不够,还需要对数据库下面的所有表授权才可正常使用;

GRANT CONNECT, CREATE, TEMPORARY ON DATABASE "数据库名称" TO 用户名;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO 用户名;

补充说明

设置默认权限,使某个用户对未来在 public 模式下创建的表也拥有全部权限

ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON TABLES TO 用户名;

四、写在文末

本文通过实际案例操作演示了如何基于Docker搭建pg的完整过程,并补充了pg数据库操作的常用命令和授权命令,希望对看到的同学有用,本篇到此结束,感谢观看。

到此这篇关于docker 搭建单机PostgreSQL操作详解的文章就介绍到这了,更多相关docker 单机PostgreSQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker部署Rancher的方法(无坑)

    Docker部署Rancher的方法(无坑)

    这篇文章主要介绍了Docker部署Rancher的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Docker如何添加自定义网桥

    Docker如何添加自定义网桥

    本篇文章主要介绍了Docker如何添加自定义网桥,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Windows下Docker安装各种软件的详细过程

    Windows下Docker安装各种软件的详细过程

    这篇文章主要介绍了Windows下Docker安装各种软件的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • docker容器启动失败如何查看日志

    docker容器启动失败如何查看日志

    这篇文章主要介绍了docker容器启动失败如何查看日志问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Docker 创建centos容器集群并实现远程登录功能

    Docker 创建centos容器集群并实现远程登录功能

    这篇文章主要介绍了Docker 创建centos容器集群并实现远程登录,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • jenkins构建Docker 镜像实例详解

    jenkins构建Docker 镜像实例详解

    这篇文章主要介绍了 jenkins构建Docker 镜像实例详解的相关资料,需要的朋友可以参考下
    2017-04-04
  • docker搭建php+nginx+swoole+mysql+redis环境的方法

    docker搭建php+nginx+swoole+mysql+redis环境的方法

    这篇文章主要介绍了docker搭建php+nginx+swoole+mysql+redis环境的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • docker下迁移elasticsearch问题以及解决方案

    docker下迁移elasticsearch问题以及解决方案

    文章描述了如何将Elasticsearch数据从一个服务器迁移到另一个服务器,包括数据挂载、版本一致性、启动命令的匹配以及可能遇到的权限和节点故障问题的解决方法
    2024-11-11
  • Docker部署Django+Mysql+Redis+Gunicorn+Nginx的实现

    Docker部署Django+Mysql+Redis+Gunicorn+Nginx的实现

    这篇文章主要介绍了Docker 部署 Django+Mysql+Redis+Gunicorn+Nginx,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • win7环境下Docker快速构建及阿里云容器加速配置详解

    win7环境下Docker快速构建及阿里云容器加速配置详解

    这篇文章主要介绍了win7环境下Docker快速构建及阿里云容器加速配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09

最新评论