Docker 运行 PolarDB-for-PostgreSQL 的命令,并已包含数据持久化配置
拉取官方 Docker 镜像
从 Docker Hub 拉取 PolarDB-for-PostgreSQL 的官方镜像。
docker pull polardb/polardb_pg_local_instance
如果无法拉去使用本人的阿里云的
x86架构
docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/polardb_pg_local_instance:latest
ARM架构的
docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/linux_arm64_polardb_pg_local_instance:latest
docker run -d \--name polardb_pg_prod \--restart=unless-stopped \--cpus=4 \--memory=8g \--memory-swap=9g \--shm-size=1g \-p 32682:5432 \-e LANG=C.UTF-8 \-e TZ=Asia/Shanghai \-e POSTGRES_USER=polardb_admin \-e POSTGRES_PASSWORD=JmpBqVaqky2auE9k \-e POSTGRES_DB=polardb_prod \-v /data/polardb/data:/var/lib/postgresql/data \-v /data/polardb/backups:/backups \-v /data/polardb/conf:/etc/postgresql \-v /etc/localtime:/etc/localtime:ro \--health-cmd="pg_isready -U polardb_admin" \--health-interval=30s \--health-timeout=10s \--health-retries=3 \registry.cn-hangzhou.aliyuncs.com/qiluo-images/polardb_pg_local_instance:latest
生产环境增强配置说明:
资源限制:
–cpus=4:限制容器使用最多 4 个 CPU 核心
–memory=8g:限制容器使用最大 8GB 内存
–memory-swap=9g:设置交换分区大小
–shm-size=1g:增加共享内存大小,对 PostgreSQL 性能很重要
自动重启:
–restart=unless-stopped:Docker 守护进程重启时自动重启容器,除非手动停止
安全认证:
-e POSTGRES_PASSWORD=JmpBqVaqky2auE9k:务必修改为强密码
-e POSTGRES_USER=polardb_admin:创建指定管理员用户
-e POSTGRES_DB=polardb_prod:创建指定数据库
多卷挂载:
-v /data/polardb/data:/var/lib/postgresql/data:主数据目录
-v /data/polardb/backups:/backups:备份目录
-v /data/polardb/conf:/etc/postgresql:配置文件目录(方便自定义配置)
-v /etc/localtime:/etc/localtime:ro:保持容器时间与主机同步
健康检查:
–health-cmd 等参数:配置容器健康检查,便于监控和自动恢复
连接示例:
使用 psql 连接
psql -h localhost -p 32682 -U polardb_admin -d polardb_prod
或者使用连接字符串
psql "postgresql://polardb_admin:JmpBqVaqky2auE9k @localhost:32682/polardb_prod"