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.rdb
docker-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_PASSWORD=root
三、总结
更多推荐


所有评论(0)