From d08ce7e3e7826e741d0f67b6165cbfa0cf85a75d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A5=80=E6=A2=A6?= <3501646051@qq.com> Date: Tue, 30 Dec 2025 14:40:56 +0800 Subject: [PATCH] =?UTF-8?q?docs(docker):=20=E6=9B=B4=E6=96=B0=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E7=BB=93=E6=9E=84=E5=B9=B6=E6=B7=BB=E5=8A=A0Postgres?= =?UTF-8?q?=E9=83=A8=E7=BD=B2=E6=8C=87=E5=8D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 重构docker文档目录结构,将数据库相关文档移动到db子目录,其他服务文档移动到other子目录 添加Postgres部署文档,包含基本运行和持久化配置方案 --- docs/.vuepress/notes.ts | 9 ++-- docs/notes/ops/docker/ETLCloud.md | 2 +- docs/notes/ops/docker/Postgres.md | 69 +++++++++++++++++++++++++++++++ docs/notes/ops/docker/mongodb.md | 3 +- 4 files changed, 76 insertions(+), 7 deletions(-) create mode 100644 docs/notes/ops/docker/Postgres.md diff --git a/docs/.vuepress/notes.ts b/docs/.vuepress/notes.ts index b8e8818..9a25742 100644 --- a/docs/.vuepress/notes.ts +++ b/docs/.vuepress/notes.ts @@ -149,16 +149,17 @@ const docker = defineNoteConfig({ { text: "Docker 运维笔记", link: "/ops/docker/" }, { text: "数据库相关", - prefix: "docker/", + prefix: "/ops/docker/db/", items: [ - { text: "MongoDB 部署", link: "mongodb" }, + { text: "MongoDB 部署", link: "/ops/docker/db/mongodb/" }, + { text: "Postgres 部署", link: "/ops/docker/db/postgres/" }, ] }, { text: "其他服务", - prefix: "docker/", + prefix: "/ops/docker/other/", items: [ - { text: "ETLCloud 部署", link: "ETLCloud" }, + { text: "ETLCloud 部署", link: "/ops/docker/other/ETLCloud/" }, ] }, ] diff --git a/docs/notes/ops/docker/ETLCloud.md b/docs/notes/ops/docker/ETLCloud.md index e36256d..8ad9400 100644 --- a/docs/notes/ops/docker/ETLCloud.md +++ b/docs/notes/ops/docker/ETLCloud.md @@ -1,7 +1,7 @@ --- title: ETLCloud createTime: 2025/12/24 17:13:36 -permalink: /ops/docker/ETLCloud/ +permalink: /ops/docker/other/ETLCloud/ --- ## 前置环境 diff --git a/docs/notes/ops/docker/Postgres.md b/docs/notes/ops/docker/Postgres.md new file mode 100644 index 0000000..78dbb52 --- /dev/null +++ b/docs/notes/ops/docker/Postgres.md @@ -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'; +``` diff --git a/docs/notes/ops/docker/mongodb.md b/docs/notes/ops/docker/mongodb.md index 813c3db..2f22ed6 100644 --- a/docs/notes/ops/docker/mongodb.md +++ b/docs/notes/ops/docker/mongodb.md @@ -1,8 +1,7 @@ --- title: 使用 Docker 部署 MongoDB createTime: 2025/12/24 16:34:00 -icon: mdi:database -permalink: /ops/docker/mongodb/ +permalink: /ops/docker/db/mongodb/ --- 本教程将介绍如何使用 Docker 快速部署一个 MongoDB 实例。