Docker部署PostgreSQL

Docker部署PostgreSQL 一、 说明系统Ubuntu 24.04。PostgreSQL 版本18。Docker 版本29.1.3。Docker Compose 版本v5.0.0。二、部署目录结构/www/common# tree -a -L 3 $(pwd) /www/common ├── .env ├── docker-compose.yml ├── mysql │ ├── conf.d │ │ └── custome.conf │ └── data ├── nginx │ ├── conf.d │ │ └── python_talk.conf │ ├── logs │ │ ├── access.log │ │ ├── error.log │ │ └── python_talk │ └── nginx.conf ├── postgres │ └── data └── redis ├── conf │ └── redis.conf └── data └── dump.rdbdocker-compose.yml# filename: docker-compose.yml # 虽然新版的 docker compose 已经不推荐使用 version, 但是考虑到向后兼容性暂保留. version: 3 services: postgres: image: postgres:18.4 container_name: postgres restart: always hostname: postgres environment: TZ: Asia/Shanghai POSTGRES_USER: postgres POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} # ${POSTGRES_PASSWORD} 来自于 .env 文件 ports: - 5432:5432 volumes: - ./postgres/data:/var/lib/postgresql/18/docker # 从 18 开始这样设置18之前是/var/lib/postgresql/data networks: - default # 如果有多个服务使用 default 的好处是如果 name 变化只要改一个地方即可如果只有一个那么也可以直接使用自定义的 name networks: default: name: backend # 这是 network 的名称 external: true # external 的意思是是否使用外部创建的 network如果为 True, 需要手动创建。.env# filename: .env. # .env 和 docker-compose.yml 位于同一层目录 # Postgres POSTGRES_PASSWORDroot三、总结工作中用 PostgreSQL 较少这里做一个记录Docker 部署的话重点是了解 Docker, Docker Compose 的用法PostgreSQL 的知识用不到多少需要了解一些新版本的设置即可。有时候对版本不熟悉就会看到各种写法就会纠结用哪种或者出现混用导致运行不起来让人感觉寸步难行所以这里记录一下本人在实际工作中采用的部署供大家参考。欢迎搜索及关注编程人(a_codists)