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 实例。