1、docker部署
mkdir -p /custom/mount
docker run -dit --name db \
-p 5432:5432 \
--restart always \
-e POSTGRES_USER=admin \
-e POSTGRES_PASSWORD=000000 \
-e POSTGRES_DB=mall_db \
-v /custom/mount:/var/lib/postgresql/data \
registry.cn-hangzhou.aliyuncs.com/sixsixsix666/postgres:16.9
参数表格
参数 |
功能 |
示例值 |
-d |
以守护态(后台)运行容器 |
- |
-i |
保持标准输入打开,允许交互式操作 |
- |
-t |
分配一个伪终端(TTY) |
- |
--name |
指定容器名称 |
db |
-p |
端口映射(宿主机:容器) |
5432:5432 |
--restart |
重启宿主机后容器自动重启 |
always |
-e POSTGRES_USER |
设置数据库超级用户 |
admin |
-e POSTGRES_PASSWORD |
设置超级用户密码 |
000000 |
-e POSTGRES_DB |
创建初始数据库 |
mall_db |
-v |
挂载数据卷(宿主机:容器) |
/custom/mount:/var/lib/postgresql/data |
镜像名:标签 |
指定 Docker 镜像及版本 |
registry.cn-hangzhou.aliyuncs.com/sixsixsix666/postgres:16.9 |
注意事项
- 密码安全:明文密码存在安全风险,生产环境建议使用 Docker 密钥管理或环境变量文件
- 数据目录权限:宿主机
/custom/mount
目录需要确保 PostgreSQL 进程有读写权限(通常为 uid:gid = 999:999
)
- 端口冲突:确保宿主机 5432 端口未被其他服务占用
2、docker-compose部署
mkdir postgresSQL
cd postgresSQL
mkdir config
vim config/postgresql.conf
# 允许监听所有IP地址
listen_addresses = '*'
# 其他性能参数(可选)
shared_buffers = '1GB'
work_mem = '64MB'
maintenance_work_mem = '256MB'
max_connections = 200
vim docker-compose.yml
services:
postgres:
image: registry.cn-hangzhou.aliyuncs.com/sixsixsix666/postgres:16.9
container_name: postgres-mall
restart: always
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: "000000"
POSTGRES_DB: mall_db
ports:
-