
1、拉取镜像
docker pull postgres2、创建本地卷
数据卷可以在容器之间共享和重用, 默认会一直存在,即使容器被删除(docker volume inspect pgdata可查看数据卷的本地位置,验证持久数据目录)
[root@bigdata bigdata]# docker volume create pgdatapgdata[root@bigdata bigdata]# docker volume inspect pgdata[    {        "CreatedAt": "2022-06-27T20:20:12+08:00",        "Driver": "local",        "Labels": {},        "Mountpoint": "/var/lib/docker/volumes/pgdata/_data",        "Name": "pgdata",        "Options": {},        "Scope": "local"    }]3、启动容器
docker run  \--name duo-postgres \--restart=always \-p 5432:5432 \-d \-e POSTGRES_PASSWORD=123456 \-e ALLOW_IP_RANGE=0.0.0.0/0 \-v /bigdata/postgres/data:/var/lib/postgresql/data \-v /bigdata/postgres/my-postgres.conf:/etc/postgresql/postgresql.conf \postgres
- run :创建并运行一个容器
 - –name :指定容器名称
 - -e POSTGRES_PASSWORD=123456,设置环境变量,指定数据库的登录口令为123456
 - -p :指定宿主机和 Docker 容器端口映射,冒号前为宿主机端口号,另一个是容器端口号。
 - postgres:指定使用postgres作为镜像
 - - v:映射(本地目录:容器目录)
 - -e ALLOW_IP_RANGE=0.0.0.0/0:允许所有ip访问,不加非本机ip不能访问
 
4、修改配置
4.1 编辑postgresql.conf文件
#修改:在所有IP地址上监听,从而允许远程连接到数据库服务器:listening_address: '*'4.2 编辑pg_hba.conf文件
#添加或修改:允许任意用户从任意机器上以密码方式访问数据库,把下行添加为第一条规则:host    all       all             0.0.0.0/0          md5local   all      postgres                            md5
5、进入容器,从新加载pg配置
[root@bigdata data]# docker exec -it 7b2d8a96ef4c /bin/bashroot@7b2d8a96ef4c:/# su postgrespostgres@7b2d8a96ef4c:/$ pg_ctl reloadserver signaled6、Datagrip连接测试











