PostGreSQL docker 拉取以及部署流程


1. 拉取镜像(国内加速)

bash 复制代码
# 2025-10 已推送的 18 最新版 
docker pull docker.1ms.run/postgres:18

2. 创建宿主机目录(父目录挂载方案)

bash 复制代码
mkdir -p $HOME/pg18
# 赋予容器内 999 用户写权限(镜像默认 uid)
sudo chown -R 999:999 $HOME/pg18

3. 启动容器(关键:挂载父目录 /var/lib/postgresql

bash 复制代码
docker run -d --name postgres \
  -e POSTGRES_PASSWORD=Root@123 \
  -v $HOME/pg18:/var/lib/postgresql \
  -p 5432:5432 \
  --restart unless-stopped \
  docker.1ms.run/postgres:18
参数 说明
-v $HOME/pg18:/var/lib/postgresql 只挂父目录 ,镜像会在其下自动创建 18/main 版本子目录,兼容 18+ 的 pg_ctlcluster 结构
不再挂 /var/lib/postgresql/data 避免与新版目录冲突,防止出现「unused mount」错误

4. 验证部署

bash 复制代码
docker ps | grep postgres
# 状态 Up 即可

docker exec -it postgres psql -U postgres
# 出现 postgres=# 表示正常连接

5. 后续升级小版本(18.x → 18.y)

bash 复制代码
docker pull docker.1ms.run/postgres:18
docker restart postgres

数据目录结构不变,自动兼容 。


6. 一键停/删(可选)

bash 复制代码
docker stop postgres && docker rm postgres

宿主机 $HOME/pg18 仍会保留,重新运行第 3 步即可复用数据。

按照以上 5 步,即可在本地完成 PostgreSQL 18 的拉取与部署,并规避因目录结构变更导致的重启循环。

相关推荐
DROm RAPS3 小时前
十七:Spring Boot依赖 (2)-- spring-boot-starter-web 依赖详解
前端·spring boot·后端
TlYf NTLE4 小时前
Spring Boot spring-boot-maven-plugin 参数配置详解
spring boot·后端·maven
皮卡丘love大米4 小时前
【避坑实录】MongoDB 8.0 Windows 服务安装报错 2186 / PowerShell sc 失效 完美解决
后端
a8a3024 小时前
Spring Boot(快速上手)
java·spring boot·后端
武子康4 小时前
大数据-258 离线数仓 - Livy与Griffin编译安装指南:大数据环境配置实战
大数据·hadoop·后端
野犬寒鸦4 小时前
Redis复习记录Day03
服务器·redis·后端·面试·bootstrap·mybatis
GreatSQL5 小时前
一文搞懂 MySQL/GreateSQL 只读参数:read_only 参数核心区别
后端
羊小猪~~5 小时前
【QT】-- 模型与视图简介
开发语言·数据库·c++·后端·qt·前端框架·个人开发
古法安卓5 小时前
Android-NTP时间同步机制
后端
Memory_荒年5 小时前
Dubbo面试通关秘籍:从“小白”到“源码大神”的终极指南
java·后端·dubbo