PostgreSQL 教程: 使用 Docker 安装 PostgreSQL

十月 19, 2026

摘要:在本教程中,你将学习如何在 Linux 上通过 Docker 安装 PostgreSQL。

目录

使用 Docker 安装 PostgreSQL

要通过 Docker 运行 PostgreSQL,需从 Docker Hub 拉取官方 PostgreSQL 镜像,并启动一个配置了访问凭证环境变量的容器。

拉取官方 PostgreSQL 镜像

获取最新的官方 PostgreSQL 镜像(也可指定版本标签,例如 postgres:18 或 postgres:18.6-trixie):

docker pull postgres

运行 PostgreSQL 容器

使用 docker run 启动容器,必须设置必填的 POSTGRES_PASSWORD 环境变量。

docker run --name my-postgres \
  -e POSTGRES_PASSWORD=mysecretpassword \
  -p 5432:5432 \
  -d postgres
  • --name my-postgres:为容器命名。
  • -e POSTGRES_PASSWORD=...:为 postgres 默认超级用户设置密码。
  • -p 5432:5432:将主机的 5432 端口映射到容器的 5432 端口。
  • -d:以守护(后台)模式运行容器。

验证 PostgreSQL 运行状态

检查容器的运行状态:

docker ps -a

你也可以查看数据库日志,确认服务已就绪、可以接受连接:

docker logs my-postgres

连接到 PostgreSQL

通过 psql 在运行中的容器内进入数据库命令行:

docker exec -it my-postgres psql -U postgres

或者使用任意外部数据库客户端(如 psql、DBeaver 或 pgAdmin),连接地址为 localhost:5432,用户名 postgres,密码 mysecretpassword。

数据持久化存储

默认情况下,容器内写入的数据会随容器删除而丢失。要让数据库数据在容器删除后仍然保留,请挂载 Docker 卷。

创建一个 Docker 卷:

docker volume create pgdata

使用 Docker 卷启动容器:

docker run --name my-postgres \
  -e POSTGRES_PASSWORD=mysecretpassword \
  -v pgdata:/var/lib/postgresql \
  -p 5432:5432 \
  -d postgres

使用 Docker Compose

针对本地开发场景,可以创建一个 docker-compose.yml 文件:

version: '3.8'
services:
  postgres:
    image: postgres:18
    container_name: postgres-db
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: mysecretpassword
      POSTGRES_DB: mydatabase
    ports:
      - "5432:5432"
    volumes:
      - pgdata:/var/lib/postgresql
    restart: always
volumes:
  pgdata:

使用以下命令启动服务:

docker compose up -d

停止容器

如果使用 Docker 命令行,停止容器的命令为:

docker stop my-postgres

如果使用 Docker Compose,停止服务的命令为:

docker compose down

总结

按照以上步骤,你已经通过 Docker 搭建了一套稳定的 PostgreSQL 本地开发环境。该配置实现了数据持久化,为各类开发需求提供了灵活、隔离且一致的运行环境。