feat: v1.0.0 祀梦笔记:从 0 到 1 的数字化花园建设

This commit is contained in:
祀梦
2026-01-09 10:03:40 +08:00
commit a5fd8545f4
75 changed files with 15529 additions and 0 deletions

View File

@@ -0,0 +1,69 @@
---
title: 使用 Docker 部署 Postgres
createTime: 2025/12/25 10:52:34
permalink: /ops/docker/db/postgres/
---
## 在 Ubuntu 上部署 Postgres 实例
拉取 Postgres 镜像:
```bash
docker pull postgres
```
> [!IMPORTANT] 注意事项
> 从 **PostgreSQL 18+** 版本开始,官方镜像建议将数据目录挂载到 `/var/lib/postgresql` 而非 `/var/lib/postgresql/data`。如果你是从旧版本升级镜像,直接挂载旧目录会导致启动失败。
### 极简运行 Postgres 实例
```bash
docker run --restart=always -itd --name postgres -p 5432:5432 -e POSTGRES_PASSWORD=postgres postgres
```
解析:
- `--restart=always`:容器重启时自动启动。
- `-itd`:交互式模式运行容器,后台模式。
- `--name postgres`:为容器命名为 postgres。
- `-p 5432:5432`:将主机的 5432 端口映射到容器的 5432 端口。
- `-e POSTGRES_PASSWORD=postgres`:设置 Postgres 数据库的密码为 postgres。
- `postgres`:使用 Postgres 镜像。
### 配置 Postgres 持久化实例
#### 方案一:使用最新版本 (18+)
创建一个目录用于存储 Postgres 数据:
```bash
mkdir -p /data/postgres/
```
运行 Postgres 容器:
```bash
docker run --restart=always -itd \
--name postgres \
-p 5432:5432 \
-e POSTGRES_PASSWORD=postgres \
-v /data/postgres/:/var/lib/postgresql \
postgres
```
#### 方案二:固定使用旧版本 (如 17)
如果你有现存的 `/var/lib/postgresql/data` 格式数据,建议固定版本:
```bash
docker run --restart=always -itd \
--name postgres \
-p 5432:5432 \
-e POSTGRES_PASSWORD=postgres \
-v /data/postgres/:/var/lib/postgresql/data \
postgres:17
```
解析:
- `-v /data/postgres/:/var/lib/postgresql/data`:将主机的 /data/postgres/ 目录挂载到容器的 /var/lib/postgresql/data 目录,用于持久化存储数据。
#### 进入容器之后修改 postgres 用户密码
进入 Postgres 容器:
```bash
docker exec -it postgres psql -U postgres
```
解析:
- `docker exec -it postgres psql -U postgres`:进入 Postgres 容器的 psql 命令行界面,使用 postgres 用户进行登录。
修改 postgres 用户密码为 postgres
```sql
ALTER USER postgres PASSWORD 'postgres';
```