前言
数据库最好跑在数台单独的虚拟机上来确保高可用。
不过我的边缘业务并没有那么高需求,即使所有服务器都 Down 了也有 Cloudflare 代理业务用的服务器做最后一层保障,因此怎么方便怎么来吧。
方案概述
- 安装 Docker 环境
- 确定容器运行参数
- 启动容器
- 测试连接数据库
操作步骤
一、安装 Docker 环境
参考:Ubuntu 20.04 从官方源安装最新的 Docker
二、确定容器运行参数
| 参数 | 值 | 解释 |
|---|---|---|
POSTGRES_USER | postgres | 数据库管理员用户 |
POSTGRES_PASSWORD | my_postgresql_password | 数据库管理员密码 |
PGDATA | /var/lib/postgresql/data/pgdata | PostgreSQL 数据存储目录 |
三、启动容器
映射下目录做适当的数据持久化:
| 宿主机目录 | 容器目录 |
|---|---|
/rab/docker/postgresql/data | /var/lib/postgresql/data |
然后创建目录:
mkdir -vp /rab/docker/postgresql/data
映射下端口:
| 宿主机端口 | 容器端口 |
|---|---|
5432 | 5432 |
docker run -d \
--name postgresql \
--restart=unless-stopped \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=my_postgresql_password \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-v /rab/docker/postgresql/data:/var/lib/postgresql/data \
-p 5432:5432 \
postgres:latest
之后 docker ps 看下是否正常运行:
docker ps -a
docker logs postgresql
四、测试连接数据库
服务器的防火墙需要放行 5432 端口,云服务厂商有安全组的话也需要放行。
之后用账户 postgres 和密码 my_postgresql_password 连接数据库即可:


结束。