使用 Docker 快速安装和运行 Postgres
|
admin
2026年10月19日 9:30
本文热度 48
|
通过 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 端口。
验证 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 本地开发环境。该配置实现了数据持久化,为各类开发需求提供了灵活、隔离且一致的运行环境。
阅读原文:点击这里
该文章在 2026/10/19 9:30:55 编辑过