<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>小明同学 - Docker</title>
  
  <subtitle>分类：Docker</subtitle>
  <link href="https://xiaomingclassmate.com/categories/Docker/atom.xml" rel="self"/>
  
  <link href="https://xiaomingclassmate.com/"/>
  <updated>2026-11-08T12:57:25.935Z</updated>
  <id>https://xiaomingclassmate.com/</id>
  
  <author>
    <name>小明同学</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>终极博客搭建术！Docker + Hexo，让你的写作环境“一尘不染”！</title>
    <link href="https://xiaomingclassmate.com/posts/59636/"/>
    <id>https://xiaomingclassmate.com/posts/59636/</id>
    <published>2026-01-31T03:54:18.000Z</published>
    <updated>2026-11-08T12:57:25.935Z</updated>
    
    <content type="html"><![CDATA[<p>大家好，我是小明同学。</p><p>老铁们，你是不是也经历过这样的纠结？</p><p>想写博客，用 Hexo 嘛，确实很香：免费、快速、Markdown 写作。但一想到要在本地电脑上装 Node.js、配置各种环境依赖，甚至还可能遇到版本冲突，就有点头大。尤其是当你换一台电脑，或者想在不同系统上部署，那种“重新配置环境”的痛苦，简直是噩梦！</p><p>“有没有一种办法，能让我享受 Hexo 的丝滑，又不用污染我的本地环境，甚至能实现博客环境的‘随身携带’？”</p><p><strong>有！今天，我就要带你进入一个全新的境界——用 Docker 搭建你的 Hexo 博客！</strong></p><p>这不仅仅是搭建博客，更是搭建一个 <strong>“永不崩溃、环境纯净、可随时迁移”</strong> 的博客工作站！</p><p>使用到的项目地址：<a href="https://github.com/appotry/docker-hexo">https://github.com/appotry/docker-hexo</a><br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260128212458982.png" alt="image.png"></p><hr><h3 id="为什么用-Docker-来跑-Hexo？它到底“香”在哪里？"><a href="#为什么用-Docker-来跑-Hexo？它到底“香”在哪里？" class="headerlink" title="为什么用 Docker 来跑 Hexo？它到底“香”在哪里？"></a>为什么用 Docker 来跑 Hexo？它到底“香”在哪里？</h3><p>你可能听过 Docker，知道它是个“容器”技术，但具体怎么用在博客上，又有什么好处呢？</p><p>简单来说，用 Docker 跑 Hexo，就像是给你的 Hexo 博客<strong>量身定制了一个独立的小房间。</strong> 这个房间里，Node.js、Hexo 框架、各种依赖，所有需要的东西都打包在里面，互不干扰。</p><p>它的“香”点，简直是为我们这些懒人、爱折腾又怕麻烦的人量身打造：</p><ol><li><strong>告别“环境地狱”：</strong> 这是最大的优点！你的本地电脑不需要安装 Node.js、npm，甚至是 Hexo-cli！所有这些都运行在 Docker 容器里。从此告别版本冲突、依赖问题，你的本地开发环境保持极致纯净。</li><li><strong>“开箱即用”，一步到位：</strong> Docker 镜像里已经预装好了 Hexo 运行所需的一切。你只需要拉取镜像，启动容器，就能直接开始写博客、生成、部署，省去了大量的环境配置时间。</li><li><strong>多电脑同步，无缝切换：</strong> 无论你在家里的台式机，还是公司的笔记本，甚至是借朋友的电脑，只要装了 Docker，把你的博客项目文件夹一挂载，就能立即进入你的博客工作状态，写作、发布一气呵成。</li><li><strong>环境一致性，永不崩溃：</strong> 容器化保证了每次运行的环境都一模一样，不会因为你本地系统更新、安装了其他软件而导致 Hexo 罢工。你的博客环境，永远稳定如初。</li><li><strong>方便迁移和备份：</strong> 你的博客所有内容（文章、配置、主题）都集中在一个文件夹里。用 Docker 跑，这个文件夹就是你的“宝藏”。备份这个文件夹，就备份了整个博客。迁移起来更是方便，新电脑装 Docker，把文件夹一复制，搞定！</li></ol><p>一句话总结：<strong>Docker 让 Hexo 从“在你电脑上搭建”，变成了“把你的博客环境打包带走”！</strong></p><h3 id="准备工作：就一个！"><a href="#准备工作：就一个！" class="headerlink" title="准备工作：就一个！"></a>准备工作：就一个！</h3><p>你只需要在你的电脑上安装 <strong>Docker</strong>，建议使用linux服务器进行部署。安装教程这里不再赘述，看我之前的文章。</p><p>安装好 Docker，咱们就开始施展魔法了！</p><h3 id="Docker-Hexo-搭建博客：手把手教学！"><a href="#Docker-Hexo-搭建博客：手把手教学！" class="headerlink" title="Docker + Hexo 搭建博客：手把手教学！"></a>Docker + Hexo 搭建博客：手把手教学！</h3><p>我们的核心思路是：<strong>把你的 Hexo 博客文件（文章、主题、配置等）放在本地一个文件夹里，然后把这个文件夹“映射”到 Docker 容器里，让容器内的 Hexo 访问和操作它。</strong> Docker镜像已经内置了hexo和一下常用的插件。</p><p><strong>第一步：部署 Hexo Docker 镜像</strong></p><p><strong>Docker Cli部署：</strong></p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">docker create --name=hexo \</span><br><span class="line">-e HEXO_SERVER_PORT=4000 \</span><br><span class="line">-e GIT_USER=<span class="string">&quot;17lai&quot;</span> \</span><br><span class="line">-e GIT_EMAIL=<span class="string">&quot;17lai@domain.tld&quot;</span> \</span><br><span class="line">-v /mnt/blog:/app \</span><br><span class="line">-p 4000:4000 \</span><br><span class="line">jumploop/hexo</span><br></pre></td></tr></table></figure><p><strong>docker compose部署</strong></p><blockquote><p>推荐使用 docker compose 来管理docker</p></blockquote><p>docker-compose.yml内容如下：</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">services:</span></span><br><span class="line">    <span class="attr">hexo:</span></span><br><span class="line">        <span class="attr">container_name:</span> <span class="string">hexo</span></span><br><span class="line">        <span class="attr">image:</span> <span class="string">jumploop/hexo:latest</span></span><br><span class="line">        <span class="attr">hostname:</span> <span class="string">hexo</span></span><br><span class="line">        <span class="attr">ports:</span></span><br><span class="line">            <span class="bullet">-</span> <span class="string">&#x27;7800:4000&#x27;</span></span><br><span class="line">        <span class="attr">volumes:</span></span><br><span class="line">            <span class="bullet">-</span> <span class="string">$&#123;USERDIR&#125;/hexo/blog:/app</span></span><br><span class="line">        <span class="attr">env_file:</span></span><br><span class="line">            <span class="bullet">-</span> <span class="string">.env</span> <span class="comment"># 部分公用环境变量放到这里，以使得多个docker之间共享环境变量</span></span><br><span class="line">        <span class="attr">environment:</span></span><br><span class="line">            <span class="bullet">-</span> <span class="string">PUID=$&#123;PUID&#125;</span></span><br><span class="line">            <span class="bullet">-</span> <span class="string">PGID=$&#123;PGID&#125;</span></span><br><span class="line">            <span class="bullet">-</span> <span class="string">TZ=$&#123;TZ&#125;</span></span><br><span class="line">            <span class="bullet">-</span> <span class="string">GIT_USER=&quot;yourName&quot;</span></span><br><span class="line">            <span class="bullet">-</span> <span class="string">GIT_EMAIL=&quot;youID@gmail.com&quot;</span></span><br><span class="line"></span><br><span class="line">            <span class="comment"># 主要为了内部npm网络访问顺利</span></span><br><span class="line">            <span class="comment"># - HTTP_PROXY=http://192.168.0.100:1089</span></span><br><span class="line">            <span class="comment"># - HTTPS_PROXY=http://192.168.0.100:1089</span></span><br><span class="line">        <span class="attr">restart:</span> <span class="string">always</span></span><br></pre></td></tr></table></figure><p>.env 文件示例</p><figure class="highlight ini"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># Copy this file to .env before building the container.</span></span><br><span class="line"><span class="comment"># Put any local modifications here.</span></span><br><span class="line"></span><br><span class="line"><span class="attr">PUID</span>=<span class="number">1000</span></span><br><span class="line"><span class="attr">PGID</span>=<span class="number">1000</span></span><br><span class="line"><span class="attr">TZ</span>=<span class="string">&quot;Asia/Shanghai&quot;</span></span><br><span class="line"><span class="attr">USERDIR</span>=<span class="string">&quot;/share/Container&quot;</span></span><br></pre></td></tr></table></figure><p><strong>环境变量</strong></p><table><thead><tr><th>环境变量</th><th>作用</th></tr></thead><tbody><tr><td>HEXO_SERVER_PORT</td><td>pm2 http 服务器运行端口，默认是4000</td></tr><tr><td>GIT_USER</td><td>git 环境变量用户名</td></tr><tr><td>GIT_EMAIL</td><td>git 环境变量邮箱</td></tr></tbody></table><p>创建好博客目录，修改好配置，执行下面命令，进行部署</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">docker compose up -d</span><br></pre></td></tr></table></figure><p>浏览器输入http:&#x2F;&#x2F;你的服务器IP:4000，就可以看到博客页面了<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260128222254598.png" alt="image.png"></p><p><strong>第二步： ssh key 部署</strong></p><p><strong>Docker会自动随机生成ssh key</strong> 在 &#x2F;app&#x2F;.ssh 目录下面。自动部署请把ssh key添加到github 等平台。</p><blockquote><ol><li>将<strong>SSH</strong> 公钥复制到剪贴板。</li><li>在任何页面的右上角，单击您的个人资料照片，然后单击Settings（设置）。</li><li>在用户设置侧边栏中，单击<strong>SSH</strong> and GPG keys（<strong>SSH</strong> 和GPG 密钥）。</li><li>单击New <strong>SSH</strong> key（新<strong>SSH</strong> 密钥）或Add <strong>SSH</strong> key（添加<strong>SSH</strong> 密钥）。</li></ol></blockquote><p><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260128222941202.png" alt="image.png"><br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260128215216358.png"><br><strong>进入docker</strong></p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">docker exec -it hexo bash</span><br></pre></td></tr></table></figure><p>然后就可以正常运行hexo的各种命令了，是不是非常简单？ 快来试试吧。<br><strong>第三步：博客的基础配置</strong></p><p>打开你本地博客文件夹里的 <code>_config.yml</code> 文件，找到Site，配置站点信息</p><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">title:</span> <span class="string">小明同学</span> <span class="comment"># 标题</span></span><br><span class="line"><span class="attr">subtitle:</span> <span class="string">&#x27;个人博客&#x27;</span> <span class="comment"># 副标题</span></span><br><span class="line"><span class="attr">description:</span> <span class="string">&#x27;一个用于知识记录与分享的博客网站&#x27;</span> <span class="comment"># 网站描述</span></span><br><span class="line"><span class="attr">keywords:</span> <span class="string">linux,devops,driver,hexo,html5,ccs3,debian,git,gitbook,vps,gitlab,mysql,vim,ai,docker,blog,note,nas</span></span><br><span class="line"><span class="attr">author:</span> <span class="string">小明同学</span> <span class="comment"># 作者</span></span><br><span class="line"><span class="attr">language:</span> <span class="string">zh-CN</span> <span class="comment"># 语言</span></span><br><span class="line"><span class="attr">timezone:</span> <span class="string">&#x27;Asia/Shanghai&#x27;</span> <span class="comment"># 时区</span></span><br></pre></td></tr></table></figure><p><strong><code>_config.yml</code> 文件的其它修改建议:</strong></p><ul><li>请修改 <code>_config.yml</code> 的 <code>url</code> 的值为你的网站主 <code>URL</code>（如：<code>http://xxx.github.io</code>）。</li><li>建议修改两个 <code>per_page</code> 的分页条数值为 <code>6</code> 的倍数，如：<code>12</code>、<code>18</code> 等，这样文章列表在各个屏幕下都能较好的显示。</li><li>如果你是中文用户，则建议修改 <code>language</code> 的值为 <code>zh-CN</code>。</li></ul><p>效果展示<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260130233430793.png" alt="image.png"></p><p><strong>第四步：发布到互联网（GitHub Pages &#x2F; Gitee Pages）</strong></p><p><strong>准备工作：</strong> 1.<strong>注册 GitHub 账号：</strong> 如果你还没有，赶紧去 <a href="https://github.com/">github.com</a> 注册一个。2.<strong>创建新仓库：</strong> 在 GitHub 上创建一个新的仓库 (Repository)，<strong>仓库名称必须是 <code>你的GitHub用户名.github.io</code></strong> (例如，如果你的用户名是 <code>zhangsan</code>，那么仓库名就是 <code>zhangsan.github.io</code>)。</p><p><strong>部署</strong><br>如果你想把博客部署到 GitHub Pages 或 Gitee Pages，你需要配置 <code>_config.yml</code> 文件，并安装 <code>hexo-deployer-git</code> 插件。1.<strong>安装部署插件：</strong><br>Docker镜像已经内置该插件，可以不用再安装</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">cnpm install hexo-deployer-git --save</span><br></pre></td></tr></table></figure><p>2.<strong>配置 <code>_config.yml</code>：</strong><br>打开你本地博客文件夹里的 <code>_config.yml</code> 文件，拉到最底部，修改 <code>deploy:</code> 部分。例如部署到 GitHub Pages：</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">deploy:</span></span><br><span class="line">    <span class="attr">type:</span> <span class="string">git</span></span><br><span class="line">    <span class="attr">repo:</span> <span class="string">git@github.com:你的GitHub用户名/你的GitHub用户名.github.io.git</span> <span class="comment"># 替换成你自己的仓库地址</span></span><br><span class="line">    <span class="attr">branch:</span> <span class="string">master</span> <span class="comment"># 或者 main，取决于你的 GitHub 仓库默认分支名</span></span><br></pre></td></tr></table></figure><p>保存文件。</p><p>3.<strong>生成并部署！</strong></p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">hexo clean &amp;&amp; hexo generate &amp;&amp; hexo deploy</span><br></pre></td></tr></table></figure><p><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260130004816803.png" alt="image.png"></p><p>稍等片刻，你的博客就上线了！访问 <code>https://你的GitHub用户名.github.io</code> 就能看到。<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260130233430793.png"></p><h3 id="怎么写文章？"><a href="#怎么写文章？" class="headerlink" title="怎么写文章？"></a>怎么写文章？</h3><p>你只需要在你本地博客文件夹的 <code>source/_posts</code> 目录下，用 Markdown 格式创建新的 <code>.md</code> 文件即可。</p><p>比如，在你的本地博客文件夹里，执行：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 注意，这里我们直接在本地创建文件，因为 Hexo 的新文章命令会直接操作文件系统，</span></span><br><span class="line"><span class="comment"># 而我们已经把本地文件夹映射到了容器内，所以直接在本地操作即可。</span></span><br><span class="line"><span class="comment"># 如果你想用容器内的 hexo new 命令，也可以：</span></span><br><span class="line">hexo new post <span class="string">&quot;我的Docker Hexo初体验&quot;</span></span><br></pre></td></tr></table></figure><p>然后用你喜欢的编辑器打开 <code>source/_posts/我的Docker Hexo初体验.md</code>，开始你的写作！</p><p>hexo 支持实时预览修改效果，文章主题的修改，都可以通过web服务立刻看到效果。</p><p>如果你发现了修改没有立刻生效，可能是 node 缓存还在，可以使用下面方法重启 web 服务</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_"># </span><span class="language-bash">重启 pm2，需要进到容器执行</span></span><br><span class="line">pm2 restart /hexo_run.js</span><br><span class="line"><span class="meta prompt_"></span></span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">重启 hexo docker</span></span><br><span class="line">docker restart hexo</span><br></pre></td></tr></table></figure><p>写完后，确认无误后，重复<strong>第四步</strong>的部署命令即可发布。然后通过访问 <code>https://你的GitHub用户名.github.io</code> 就能看到最新的修改。<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260130233531625.png" alt="image.png"></p><h3 id="总结：Docker-Hexo，让你的博客之路“一劳永逸”！"><a href="#总结：Docker-Hexo，让你的博客之路“一劳永逸”！" class="headerlink" title="总结：Docker + Hexo，让你的博客之路“一劳永逸”！"></a>总结：Docker + Hexo，让你的博客之路“一劳永逸”！</h3><p>用 Docker 运行 Hexo，可能初看起来比直接安装 Hexo 稍微多一步，但它带来的<strong>环境隔离、一致性、以及无与伦比的便捷性</strong>，绝对是值得的！</p><p>从此，你的博客环境不再受本地电脑的“污染”，无论你在哪里，都能随时随地、优雅地写作和发布。这不仅仅是搭建博客，更是搭建了一个<strong>高效、稳定、可移植的个人内容发布系统！</strong></p><p>所以，别再犹豫了！赶紧动手，用 Docker 打造你的专属 Hexo 博客工作站吧！你会发现，它的“真香”程度，远超你的想象！</p><p>觉得这个教程有用？别忘了点赞、转发给身边想写博客的朋友们！咱们下期再见！👋</p>]]></content>
    
    
    <summary type="html">用 Docker 搭建 Hexo 博客的完整实践：环境隔离、容器部署、内容管理与迁移维护。</summary>
    
    
    
    <category term="Docker" scheme="https://xiaomingclassmate.com/categories/Docker/"/>
    
    
    <category term="Docker" scheme="https://xiaomingclassmate.com/tags/Docker/"/>
    
    <category term="Hexo" scheme="https://xiaomingclassmate.com/tags/Hexo/"/>
    
    <category term="博客搭建" scheme="https://xiaomingclassmate.com/tags/%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA/"/>
    
  </entry>
  
  <entry>
    <title>别再死磕命令行了，Dockge 才是 Docker Compose 的正确打开方式</title>
    <link href="https://xiaomingclassmate.com/posts/53591/"/>
    <id>https://xiaomingclassmate.com/posts/53591/</id>
    <published>2026-01-03T03:37:52.000Z</published>
    <updated>2026-11-08T12:56:26.435Z</updated>
    
    <content type="html"><![CDATA[<p>大家好，我是小明同学。</p><p>玩 Docker 的朋友，大概分为两派。</p><p>一派是“命令行原教旨主义者”，黑框框里敲代码，觉得特极客，但一旦容器多了，改个参数能把人累死；</p><p>另一派是“Portainer 忠实信徒”，功能那是真强大，强大到像开了一艘航母去买菜——有时候我只是想改个端口映射，它那一层层的菜单看得我脑壳疼。</p><p>我就一直在想：<strong>有没有那种，既有图形界面的直观，又能像代码一样干净利落的工具？</strong></p><p>最近，那个开发了神级监控工具 <strong>Uptime Kuma</strong> 的大佬（Louis Lam），带着他的新作品 <strong>Dockge</strong> 来了。</p><p>项目地址：<a href="https://github.com/louislam/dockge">https://github.com/louislam/dockge</a></p><p><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260101122856564.png" alt="image.png"></p><p>我替大家试了毒，结论只有两个字：<strong>丝滑。</strong></p><p>今天就聊聊，为什么建议你把手里的 Docker 管理工具，换成 Dockge。</p><h3 id="01"><a href="#01" class="headerlink" title="01"></a>01</h3><h3 id="它是真的在“管理文件”，而不是“接管系统”"><a href="#它是真的在“管理文件”，而不是“接管系统”" class="headerlink" title="它是真的在“管理文件”，而不是“接管系统”"></a>它是真的在“管理文件”，而不是“接管系统”</h3><p>很多新手用 Portainer 最大的痛点是什么？是你用它创建的容器，配置都被藏在它的数据库里。一旦 Portainer 挂了，或者你想迁移数据，那就很麻烦。</p><p>Dockge 的逻辑完全不同，它非常 <strong>“克制”</strong>。</p><p>它的核心理念是：<strong>基于 <code>compose.yaml</code> 文件。</strong></p><p>你在 Dockge 的界面上创建一个服务，它实际上是在你的硬盘里实实在在地生成了一个文件夹和一个 yaml 文件。</p><ul><li>你在界面上改配置，文件会自动更新。</li><li>你去后台用 vim 改文件，界面也会实时刷新。</li></ul><p>这种 <strong>“所见即所得”</strong> 的安全感，对于稍微懂点技术的玩家来说，简直太治愈了。你完全不用担心被工具“绑架”，工具只是你的帮手，数据依然完全掌握在你手里。</p><h3 id="02"><a href="#02" class="headerlink" title="02"></a>02</h3><h3 id="“神级功能”：docker-run-自动转-Compose"><a href="#“神级功能”：docker-run-自动转-Compose" class="headerlink" title="“神级功能”：docker run 自动转 Compose"></a>“神级功能”：docker run 自动转 Compose</h3><p>这绝对是 Dockge 的杀手锏，没有之一。</p><p>我们在网上找教程，或者去 GitHub 找项目部署，通常作者给的都是一行长长的 <code>docker run</code> 命令。</p><p>以前我们要么直接复制进终端跑（以后很难维护），要么这就得去这就得去翻文档，手动把它翻译成 Docker Compose 的格式，缩进搞错一点就报错。</p><p>在 Dockge 里，你只需要把那行 <code>docker run</code> 命令往输入框里一<strong>粘贴</strong>。</p><p><strong>啪！很快啊！</strong></p><p>它自动就给你转换成了标准的 <code>docker.yaml</code> 格式，端口、环境变量、挂载路径，整整齐齐地列在右边。</p><p>那一刻，我真的感觉到了对懒人的极致关怀。</p><h3 id="03"><a href="#03" class="headerlink" title="03"></a>03</h3><h3 id="颜值即正义，交互更顺手"><a href="#颜值即正义，交互更顺手" class="headerlink" title="颜值即正义，交互更顺手"></a>颜值即正义，交互更顺手</h3><p>如果你用过 Uptime Kuma，你就知道这个作者的审美一直在线。</p><p>Dockge 的界面非常现代化（Reactive UI），响应极快。左边是容器列表，右边是控制台和编辑器。</p><p>它甚至内置了一个网页版的终端。你需要进容器内部查看日志，或者执行个命令，直接在网页上就能操作，完全不需要再打开 SSH 客户端。</p><p>而且，它支持多代理（Agent）模式。也就是说，如果你有好几台服务器（VPS 或 NAS），你可以在一个 Dockge 界面里管理所有机器上的 Docker 容器。</p><h3 id="04"><a href="#04" class="headerlink" title="04"></a>04</h3><h3 id="怎么装？简单到令人发指"><a href="#怎么装？简单到令人发指" class="headerlink" title="怎么装？简单到令人发指"></a>怎么装？简单到令人发指</h3><p>既然是管理 Docker 的工具，它自己当然也是用 Docker 部署的。</p><p>在你想要安装的目录（比如 <code>/opt/stacks</code>），创建一个目录给它，然后运行下面的命令：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"># compose.yaml</span><br><span class="line">services:</span><br><span class="line">  dockge:</span><br><span class="line">    image: louislam/dockge:1</span><br><span class="line">    restart: unless-stopped</span><br><span class="line">    ports:</span><br><span class="line">      - 5001:5001</span><br><span class="line">    volumes:</span><br><span class="line">      - /var/run/docker.sock:/var/run/docker.sock</span><br><span class="line">      - ./data:/app/data</span><br><span class="line">      # 这里一定要注意，把你的 stack 目录映射进去</span><br><span class="line">      - /opt/stacks:/opt/stacks</span><br><span class="line">    environment:</span><br><span class="line">      - DOCKGE_STACKS_DIR=/opt/stacks</span><br></pre></td></tr></table></figure><p>如果无法下载compose.yaml文件，创建compose.yaml并复制上面的内容到compose.yaml文件中</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"># Create directories that store your stacks and stores Dockge&#x27;s stack</span><br><span class="line">mkdir -p /opt/stacks /opt/dockge</span><br><span class="line">cd /opt/dockge</span><br><span class="line"></span><br><span class="line"># Download the compose.yaml</span><br><span class="line">curl https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml --output compose.yaml</span><br><span class="line"></span><br><span class="line"># Start the server</span><br><span class="line">docker compose up -d</span><br><span class="line"></span><br><span class="line"># If you are using docker-compose V1 or Podman</span><br><span class="line"># docker-compose up -d</span><br></pre></td></tr></table></figure><p><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260101135527590.png" alt="image.png"></p><p>启动之后，访问 <code>http://IP:5001</code>，创建一个账号，你就可以开始享受丝滑了。<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260101140240234.png"></p><h3 id="05"><a href="#05" class="headerlink" title="05"></a>05</h3><h3 id="实际上手操作"><a href="#实际上手操作" class="headerlink" title="实际上手操作"></a>实际上手操作</h3><p><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260101140425884.png" alt="image.png"><br>以青龙面板为例，我们进行演示<br>1.docker run 自动转 Compose<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260101141310770.png" alt="image.png"><br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260101141336727.png" alt="image.png"> 2.点击进行部署<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260101141438022.png" alt="image.png"><br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260101141521436.png" alt="image.png"> 3.点击Bash，进入容器<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260101141642204.png" alt="image.png"><br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260101141814392.png" alt="image.png"><br>4.Dockge代理<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260101142438006.png" alt="image.png"></p><h3 id="写在最后"><a href="#写在最后" class="headerlink" title="写在最后"></a>写在最后</h3><p>工具这东西，没有最好的，只有最顺手的。</p><p>如果你是企业级用户，需要精细的权限管理和集群编排，那 Portainer 依然是老大哥。</p><p>但如果你像我一样，是个 <strong>HomeLab 玩家、NAS 用户，或者只是想管好自己那几台 VPS</strong>，Dockge 这种“轻量、直观、不越权”的工具，绝对是目前的最佳选择。</p><p>少折腾工具，多享受服务。</p><p>这，才是玩技术的初衷嘛。</p><p>你现在主要用什么方式管理 Docker？命令行、Portainer 还是群晖&#x2F;威联通&#x2F;极空间自带的界面？评论区来聊聊你的“血泪史”。</p><p>好了，以上就是今天给大家分享的内容，我是爱分享的小明同学，如果今天的内容对你有帮助请记得收藏，顺便点点关注，咱们下期再见！谢谢大家~</p><p><em>(本文纯属技术分享，无利益相关，喜欢这类神器推荐的话，点个<strong>在看</strong>鼓励一下)</em></p>]]></content>
    
    
    <summary type="html">使用 Dockge 可视化管理 Docker Compose 项目，减少命令行维护成本。</summary>
    
    
    
    <category term="Docker" scheme="https://xiaomingclassmate.com/categories/Docker/"/>
    
    
    <category term="Dockge" scheme="https://xiaomingclassmate.com/tags/Dockge/"/>
    
    <category term="Docker Compose" scheme="https://xiaomingclassmate.com/tags/Docker-Compose/"/>
    
    <category term="容器管理" scheme="https://xiaomingclassmate.com/tags/%E5%AE%B9%E5%99%A8%E7%AE%A1%E7%90%86/"/>
    
  </entry>
  
</feed>
