Docker部署PostgreSQL数据库:新手实操全流程

为什么用Docker部署PostgreSQL

传统方式安装PostgreSQL需要手动处理依赖、版本冲突和卸载残留,尤其在更换服务器时重复劳动很多。
用Docker部署PostgreSQL数据库,只需几行命令就能拉起一个独立环境,迁移时直接导出镜像或卷即可。
对于刚接触服务器运维的朋友,这种方式能大幅降低踩坑概率,也方便后期升级和备份。
零基础用户只要有一台安装了Docker的Linux服务器(或Windows/Mac的Docker Desktop),就可以跟着下面的步骤走完整个流程。

部署前需要确认的两件事

开始操作前,先确认两个基础条件。
第一,Docker是否正常运行。
在终端执行 docker version,如果能看到客户端和服务端版本号,就说明环境就绪。
如果报错,请参考官方文档先安装Docker。
第二,确认要使用的PostgreSQL版本。
目前主流是16或15,本教程以PostgreSQL 16为例,版本号可以按需替换。
另外,规划好容器映射端口(默认5432)和数据挂载目录,建议提前在宿主机创建好一个文件夹,比如 /opt/postgresql/data,用于存放数据库文件。
这一步能避免后续容器删除后数据丢失。

拉取镜像并启动第一个PostgreSQL容器

打开终端,依次执行以下命令。
先拉取镜像:

docker pull postgres:16

拉取完成后,启动一个容器并设置管理员密码、端口映射和数据卷挂载:

docker run -d \
  --name my-postgres \
  -e POSTGRES_PASSWORD=MyStrongPass123 \
  -p 5432:5432 \
  -v /opt/postgresql/data:/var/lib/postgresql/data \
  postgres:16

参数说明:-d 后台运行,--name 容器名称,-e 设置环境变量(这里设置的是数据库超级用户密码),-p 将宿主机5432端口映射到容器5432端口,-v 将宿主机目录挂载到容器内数据目录。务必把密码换成你自己的强密码,并确保宿主机端口5432未被占用。
如果端口被占,可以改为 -p 5433:5432 等。
执行后使用 docker ps 查看容器是否正常启动,状态为 Up 则成功。

连接数据库并验证数据持久化

验证部署是否成功最直接的方式是用命令行工具连接容器内的PostgreSQL。
执行:

docker exec -it my-postgres psql -U postgres

输入之前设置的密码,会进入psql命令行。
先测试基本功能:

CREATE TABLE test_table (id INT, name TEXT);
INSERT INTO test_table VALUES (1, 'hello world');
SELECT * FROM test_table;
\q

确认能正常创建表和查询后,重点验证数据持久化。
先删除容器(docker rm -f my-postgres),再重新创建一个同名容器(使用同样的 -v 挂载路径和参数),再次连接数据库查询 test_table,如果能查到刚才插入的数据,说明数据卷挂载生效。
如果查不到,很可能是挂载目录权限问题或路径写错,可以检查宿主机目录的属主属组,或者改用 docker volume 管理。

新手最容易踩的坑与解决办法

  • 端口冲突:启动容器时提示 port is already allocated,说明5432端口已被其他程序(如宿主机自带的PostgreSQL)占用。解决方法是换一个映射端口,或者在启动容器前先停掉占用端口的服务。
  • 数据卷权限:挂载宿主机目录后,容器可能因权限不足无法写入。一个简单做法是给目录777权限(chmod 777 /opt/postgresql/data),生产环境建议更精细的权限控制。
  • 密码特殊字符POSTGRES_PASSWORD 中如果包含 $# 等特殊字符,需要加单引号或转义,否则可能被Shell解析。推荐只用字母和数字。
  • 无法远程连接:默认配置只允许本地连接。如果要从其他机器连接,需要修改PostgreSQL的 pg_hba.confpostgresql.conf,或通过 docker run 添加环境变量 -e POSTGRES_HOST_AUTH_METHOD=trust(仅测试环境)。对于新手,更安全的方式是使用SSH隧道或Docker网络。

完成以上步骤,你就成功实现了Docker部署PostgreSQL数据库的全流程。
后续维护时,备份数据卷目录即可,升级只需拉取新镜像重建容器。
建议把关键命令保存成脚本,方便快速重装或迁移。

分享到:
上一篇
Linux用户组管理权限隔离:Linux用户组权限隔离实战
下一篇
服务器轻量应用服务器对比:轻量应用服务器对比
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意