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

三、总结

工作中用 PostgreSQL 较少,这里做一个记录,Docker 部署的话重点是了解 Docker, Docker Compose 的用法,PostgreSQL 的知识用不到多少,需要了解一些新版本的设置即可。

有时候对版本不熟悉,就会看到各种写法,就会纠结用哪种,或者出现混用,导致运行不起来,让人感觉寸步难行,所以这里记录一下本人在实际工作中采用的部署,供大家参考。

欢迎搜索及关注:编程人(a_codists)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值