Files
build_notes_simengweb/assets/index.html-CtJl1DW2.js
2026-01-08 17:23:37 +08:00

12 lines
13 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import{_ as i,c as e,a,o as t}from"./app-DVyxS3f7.js";const l={};function n(h,s){return t(),e("div",null,[...s[0]||(s[0]=[a(`<h2 id="在-ubuntu-上部署-postgres-实例" tabindex="-1"><a class="header-anchor" href="#在-ubuntu-上部署-postgres-实例"><span>在 Ubuntu 上部署 Postgres 实例</span></a></h2><p>拉取 Postgres 镜像:</p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-bash"><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">docker</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> pull</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> postgres</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><blockquote><p>[!IMPORTANT] 注意事项 从 <strong>PostgreSQL 18+</strong> 版本开始,官方镜像建议将数据目录挂载到 <code>/var/lib/postgresql</code> 而非 <code>/var/lib/postgresql/data</code>。如果你是从旧版本升级镜像,直接挂载旧目录会导致启动失败。</p></blockquote><h3 id="极简运行-postgres-实例" tabindex="-1"><a class="header-anchor" href="#极简运行-postgres-实例"><span>极简运行 Postgres 实例</span></a></h3><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-bash"><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">docker</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> run</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> --restart=always</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -itd</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> --name</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> postgres</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -p</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> 5432:5432</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -e</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> POSTGRES_PASSWORD=postgres</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> postgres</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>解析:</p><ul><li><code>--restart=always</code>:容器重启时自动启动。</li><li><code>-itd</code>:交互式模式运行容器,后台模式。</li><li><code>--name postgres</code>:为容器命名为 postgres。</li><li><code>-p 5432:5432</code>:将主机的 5432 端口映射到容器的 5432 端口。</li><li><code>-e POSTGRES_PASSWORD=postgres</code>:设置 Postgres 数据库的密码为 postgres。</li><li><code>postgres</code>:使用 Postgres 镜像。</li></ul><h3 id="配置-postgres-持久化实例" tabindex="-1"><a class="header-anchor" href="#配置-postgres-持久化实例"><span>配置 Postgres 持久化实例</span></a></h3><h4 id="方案一-使用最新版本-18" tabindex="-1"><a class="header-anchor" href="#方案一-使用最新版本-18"><span>方案一:使用最新版本 (18+)</span></a></h4><p>创建一个目录用于存储 Postgres 数据:</p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-bash"><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">mkdir</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -p</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> /data/postgres/</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>运行 Postgres 容器:</p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-bash"><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">docker</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> run</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> --restart=always</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -itd</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> \\</span></span>
<span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> --name</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> postgres</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> \\</span></span>
<span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -p</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> 5432:5432</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> \\</span></span>
<span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -e</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> POSTGRES_PASSWORD=postgres</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> \\</span></span>
<span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -v</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> /data/postgres/:/var/lib/postgresql</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> \\</span></span>
<span class="line"><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> postgres</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="方案二-固定使用旧版本-如-17" tabindex="-1"><a class="header-anchor" href="#方案二-固定使用旧版本-如-17"><span>方案二:固定使用旧版本 (如 17)</span></a></h4><p>如果你有现存的 <code>/var/lib/postgresql/data</code> 格式数据,建议固定版本:</p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-bash"><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">docker</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> run</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> --restart=always</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -itd</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> \\</span></span>
<span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> --name</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> postgres</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> \\</span></span>
<span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -p</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> 5432:5432</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> \\</span></span>
<span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -e</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> POSTGRES_PASSWORD=postgres</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> \\</span></span>
<span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -v</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> /data/postgres/:/var/lib/postgresql/data</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> \\</span></span>
<span class="line"><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> postgres:17</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>解析:</p><ul><li><code>-v /data/postgres/:/var/lib/postgresql/data</code>:将主机的 /data/postgres/ 目录挂载到容器的 /var/lib/postgresql/data 目录,用于持久化存储数据。</li></ul><h4 id="进入容器之后修改-postgres-用户密码" tabindex="-1"><a class="header-anchor" href="#进入容器之后修改-postgres-用户密码"><span>进入容器之后修改 postgres 用户密码</span></a></h4><p>进入 Postgres 容器:</p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-bash"><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">docker</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> exec</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -it</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> postgres</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> psql</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -U</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> postgres</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>解析:</p><ul><li><code>docker exec -it postgres psql -U postgres</code>:进入 Postgres 容器的 psql 命令行界面,使用 postgres 用户进行登录。 修改 postgres 用户密码为 postgres</li></ul><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-sql"><span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">ALTER</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> USER</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> postgres </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">PASSWORD</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &#39;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">postgres</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&#39;</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div>`,25)])])}const p=i(l,[["render",n]]),d=JSON.parse('{"path":"/ops/docker/db/postgres/","title":"使用 Docker 部署 Postgres","lang":"zh-CN","frontmatter":{"title":"使用 Docker 部署 Postgres","createTime":"2025/12/25 10:52:34","permalink":"/ops/docker/db/postgres/","description":"在 Ubuntu 上部署 Postgres 实例 拉取 Postgres 镜像: [!IMPORTANT] 注意事项 从 PostgreSQL 18+ 版本开始,官方镜像建议将数据目录挂载到 /var/lib/postgresql 而非 /var/lib/postgresql/data。如果你是从旧版本升级镜像直接挂载旧目录会导致启动失败。 极简运行...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"使用 Docker 部署 Postgres\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-12-30T06:40:56.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.simengweb.com/ops/docker/db/postgres/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"使用 Docker 部署 Postgres"}],["meta",{"property":"og:description","content":"在 Ubuntu 上部署 Postgres 实例 拉取 Postgres 镜像: [!IMPORTANT] 注意事项 从 PostgreSQL 18+ 版本开始,官方镜像建议将数据目录挂载到 /var/lib/postgresql 而非 /var/lib/postgresql/data。如果你是从旧版本升级镜像直接挂载旧目录会导致启动失败。 极简运行..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-12-30T06:40:56.000Z"}],["meta",{"property":"article:modified_time","content":"2025-12-30T06:40:56.000Z"}]]},"readingTime":{"minutes":1.31,"words":392},"git":{"createdTime":1767076856000,"updatedTime":1767076856000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/ops/docker/Postgres.md","headers":[]}');export{p as comp,d as data};