12 lines
13 KiB
JavaScript
12 lines
13 KiB
JavaScript
import{_ as i,c as e,a,o as t}from"./app-Bph9hmvC.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;"> '</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">postgres</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">'</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\\":\\"2026-01-09T02:03:40.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":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":1.31,"words":392},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"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};
|