PostgreSQL 是一款功能强大的开源关系型数据库管理系统,以其高性能、可靠性和扩展性著称。它支持复杂的查询、事务处理以及多种数据类型,同时具备良好的并发控制机制。PostgreSQL 持续演进,不断引入现代化特性,适用于从轻量级应用到大规模企业级系统的各类场景。

1、创建专属桥接网络

若已创建,可跳过此步骤。

https://www.hcjike.com/archives/tMUqkbKb

2、部署项目

2.1、创建项目

2.2、Compose配置

services:
  postgresql:
    container_name: postgresql
    image: postgres:latest
    restart: always
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD={强密码}
      - TZ=Asia/Shanghai
    ports:
      - 5432:5432
    volumes:
      - ./data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD", "pg_isready", "-h", "127.0.0.1", "-p", "5432", "-q", "-U", "postgres"]
      start_period: 20s
      interval: 30s
      retries: 5
      timeout: 5s
    networks:
      - app_network
networks:
  app_network:
    external: true
  • 设置“TZ”,值:“Asia/Shanghai”,将时区设置到+8时区,即北京时间;

  • POSTGRES_PASSWORD 要使用 PostgreSQL,需要此环境变量。它不能为空或未定义。此环境变量设置 PostgreSQL 的超级用户密码,{强密码}必须修改有效且复杂的密码,防止数据库被攻破;

  • POSTGRES_USER 此可选环境变量与设置用户及其密码结合使用。此变量将创建具有超级用户权限的指定用户和具有相同名称的数据库。如果未指定,则将使用默认用户:postgres

  • POSTGRES_DB 此可选环境变量可用于为首次启动映像时创建的默认数据库定义不同的名称。如果未指定,则将使用POSTGRES_USER的值。

在本示例中,POSTGRES_USER被设置为 postgres,因此超级管理员用户名为 postgres。由于未明确设置 POSTGRES_DB 的名称,默认数据库同样为 postgres。超级管理员密码为:{强密码}

注意:若修改了POSTGRES_USER的值,则必须将 test: ["CMD", "pg_isready", "-h", "127.0.0.1", "-p", "5432", "-q", "-U", "postgres"] 中的 "postgres" 替换为 POSTGRES_USER 所设置的用户名。