侧边栏壁纸
  • 累计撰写 54 篇文章
  • 累计创建 29 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

docker-compose 部署 PostgreSQL 数据库

JHL&WWZ
2025-05-06 / 0 评论 / 0 点赞 / 13 阅读 / 330 字

创建目录结构

mkdir -p postgres/{data,logs,config}
cd postgres

创建自定义配置文件

vim config/postgresql.conf

# 监听所有 IP 地址
listen_addresses = '*'

# 日志配置
logging_collector = on
log_directory = '/var/log/postgresql'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_rotation_age = 1d
log_rotation_size = 100MB

# 内存配置
shared_buffers = 2GB # 例如设置为 2GB,根据你的实际可用内存调整 25%--40%
work_mem = 64MB     # 例如设置为 64MB,根据你的需求调整 16MB--128MB

vim config/pg_hba.conf

# 允许所有远程连接使用密码认证
host all all 0.0.0.0/0 md5

创建 docker-compose.yml

services:
  postgres:
    image: postgres:17-alpine
    privileged: true #按实际需要添加此参数
    #image: registry.cn-hangzhou.aliyuncs.com/qijiangit/postgres:latest
    #network_mode: "host" #访问不到容器的端口时启用此方法
    container_name: postgres
    restart: unless-stopped
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres2025.rymcu#
      POSTGRES_DB: postgres
    ports:
      - "5432:5432"
    volumes:
      - ./data:/var/lib/postgresql/data
      - ./logs:/var/log/postgresql
      - ./config/postgresql.conf:/etc/postgresql/postgresql.conf
      - ./config/pg_hba.conf:/etc/postgresql/pg_hba.conf
    command: 
      - "postgres"
      - "-c"
      - "config_file=/etc/postgresql/postgresql.conf"

文件权限处理

sudo chmod 777 logs
sudo chmod 777 data

启动容器

docker compose up -d

常用管理命令

# 查看日志
docker logs postgres

# 进入容器
docker exec -it postgres bash

# 停止服务
docker compose down

# 备份数据库
docker exec postgres pg_dump -U postgres postgres > backup.sql
0

评论区