Skip to content

PostgreSQL 安装之 Docker 和 Compose

Dockerfile 介绍

官方镜像:https://hub.docker.com/_/postgres

镜像 Github 仓库:https://github.com/docker-library/postgres

Docker 安装

bash
docker run \
--name postgres \
--restart=unless-stopped \
-p 5432:5432 \
-e TZ=Asia/Shanghai \
-e PGTZ=Asia/Shanghai \
-e POSTGRES_DB=postgres \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=1qaz2wsx \
-v /var/lib/postgresql/data:/var/lib/postgresql/data \
-d postgres:14

Docker Compose 安装

yaml
services:
  postgres:
    image: postgres:14
    container_name: postgres
    restart: unless-stopped
    ports:
      - "5432:5432"
    environment:
      TZ: "Asia/Shanghai"
      PGTZ: "Asia/Shanghai"
      POSTGRES_DB: "postgres"
      POSTGRES_USER: "postgres"
      POSTGRES_PASSWORD: "1qaz2wsx"
    volumes:
      - /var/lib/postgresql/data:/var/lib/postgresql/data

参数说明

shell
# 数据库
-e POSTGRES_DB=postgres

# 管理员用户名。不指定则默认为:postgres
-e POSTGRES_USER=postgres

# 管理员用户密码。
-e POSTGRES_PASSWORD=1qaz2wsx

启动报 failure: Operation not permitted 异常

这在旧的操作系统或者 CPU 下可能就会报错。

txt
popen failure: Operation not permitted
initdb: error: program "postgres" is needed by initdb but was not found in the same directory as "/usr/lib/postgresql/15/bin/initdb"

这时候就需要在 docker run 命令中加入 --privileged=true 启动参数。