常见环境部署(三十)——Docker安装postgresql
·
1、创建宿主机挂载文件夹
# 自定义目录,可自行修改路径
mkdir -p /data/postgres/{data,conf}
/data/postgres/data:数据库数据持久化目录/data/postgres/conf:postgresql.conf、pg_hba.conf 配置目

2、拉取镜像
docker pull postgres:15
3、先临时启动容器,拷贝默认配置文件到宿主机
首次需要把容器内原始配置导出到宿主机,后续永久挂载修改:
# 临时运行pg容器(用完可删除)
docker run -d --name pg-tmp \
-e POSTGRES_PASSWORD=123456 \
postgres:15
# 拷贝两份核心配置文件到宿主机conf目录
docker cp pg-tmp:/var/lib/postgresql/data/postgresql.conf /data/postgres/conf/
docker cp pg-tmp:/var/lib/postgresql/data/pg_hba.conf /data/postgres/conf/
# 删除临时容器
docker rm -f pg-tmp

4、修改配置文件(开启远程访问)
(1)编辑 postgresql.conf
vim /data/postgres/conf/postgresql.conf
修改下面参数:
# 监听所有网卡,允许任意地址访问
listen_addresses = '*'
# 按需调整最大连接数
max_connections = 200
(2)编辑 pg_hba.conf(客户端访问权限控制)
vim /data/postgres/conf/pg_hba.conf
文件末尾添加(允许所有 IP 密码登录):
# IPv4 任意地址通过密码认证
host all all 0.0.0.0/0 scram-sha-256
# IPv6
host all all ::/0 scram-sha-256
5、正式启动 PostgreSQL 容器(永久挂载)
docker run -d \
--name postgres \
--restart always \
-p 15432:5432 \
-v /data/postgres/data:/var/lib/postgresql/data \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=Seeway@2026 \
-e PGDATA=/var/lib/postgresql/data \
postgres:15

参数说明:
--restart always:开机自启-p 5432:5432:端口映射,外部访问宿主机 5432 端口- 两个配置文件只读挂载,数据目录持久挂载
- 账号:postgres 密码:123456(自行修改)
注意:需要将上面修改的配置文件,复制进/data/postgres/data目录,然后重启容器
6、常见运维命令
# 查看日志
docker logs -f postgres
# 重启pg(修改配置后需重启生效)
docker restart postgres
# 进入容器内部
docker exec -it postgres psql -U postgres
7、连接测试
(1)宿主机本地连接
# 安装客户端后连接
psql -h 127.0.0.1 -p 15432 -U postgres
(2)外网 Navicat/DBeaver 远程连接
连接参数:
主机:服务器公网 IP
端口:5432
数据库:postgres
用户:postgres
密码:123456
更多推荐
所有评论(0)