湫羽 發表於 2025-12-30 09:57:44

使用Docker容器备份GitLab完整过程

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">适用范围</a></li><li><a href="#_label1">创建完整备份</a></li><li><a href="#_label2">备份 GitLab secrets 文件</a></li><li><a href="#_label3">配置文件说明</a></li><li><a href="#_label4">创建数据库备份(轻量回滚用)</a></li><li><a href="#_label5">回滚与恢复</a></li><li><a href="#_label6">总结</a></li></ul></div><p>在升级或维护 GitLab 自管理实例之前,备份是保障数据安全的关键步骤。本文将介绍如何在 <strong>Docker 容器环境</strong>下创建 GitLab 的完整备份与数据库备份,并说明 secrets 文件的重要性。</p>
<p class="maodian"><a name="_label0"></a></p><h2>适用范围</h2>
<ul><li><strong>等级</strong>:免费版、高级版、终极版</li><li><strong>产品</strong>:GitLab 自管理(Self-Managed)</li><li><strong>环境</strong>:运行在 Docker 容器中的 GitLab</li></ul>
<p class="maodian"><a name="_label1"></a></p><h2>创建完整备份</h2>
<p>在容器中执行以下命令即可创建完整备份:</p>
<div class="jb51code"><pre class="brush:bash;">docker exec -t &lt;container name&gt; gitlab-backup create
</pre></div>
<p>该命令会生成包含数据库、仓库、制品等内容的备份文件,存储在容器挂载的卷目录中,通常是:</p>
<div class="jb51code"><pre class="brush:bash;">/var/opt/gitlab/backups
</pre></div>
<p class="maodian"><a name="_label2"></a></p><h2>备份 GitLab secrets 文件</h2>
<p>除了数据库和仓库,<strong>secrets 文件</strong>同样重要。它包含 GitLab 的加密密钥和内部令牌,用于保障数据一致性和安全性。</p>
<p>容器内路径:</p>
<div class="jb51code"><pre class="brush:bash;">/etc/gitlab/gitlab-secrets.json
</pre></div>
<p>宿主机挂载路径:</p>
<div class="jb51code"><pre class="brush:bash;">$GITLAB_HOME/config/gitlab-secrets.json
</pre></div>
<p>请务必将该文件纳入备份,否则恢复时可能遇到复杂问题。</p>
<p class="maodian"><a name="_label3"></a></p><h2>配置文件说明</h2>
<p>如果你的 GitLab 配置完全通过环境变量提供(即使用 <strong>预配置 Docker 容器</strong>),那么 <code>gitlab.rb</code> 文件中不会存储配置设置。这种情况下,你无需额外备份配置档案。</p>
<p class="maodian"><a name="_label4"></a></p><h2>创建数据库备份(轻量回滚用)</h2>
<p>在升级 GitLab 前,建议创建一个仅包含数据库的备份,以便在升级失败时快速回滚。</p>
<p>执行以下命令:</p>
<div class="jb51code"><pre class="brush:bash;">docker exec -t &lt;container name&gt; gitlab-backup create SKIP=artifacts,repositories,registry,uploads,builds,pages,lfs,packages,terraform_state
</pre></div>
<p>此命令会跳过仓库、制品、注册表等大文件,仅备份数据库,生成的文件同样位于:</p>
<div class="jb51code"><pre class="brush:bash;">/var/opt/gitlab/backups
</pre></div>
<p class="maodian"><a name="_label5"></a></p><h2>回滚与恢复</h2>
<p>如果升级过程中出现问题,可以利用上述备份进行回滚。具体步骤请参考 GitLab 官方文档中的 <strong>回滚 Docker 实例</strong>部分。</p>
<p class="maodian"><a name="_label6"></a></p><h2>总结</h2>
<p>在 Docker 环境下备份 GitLab 的关键步骤包括:</p>
<ul><li><strong>完整备份</strong>:<code>docker exec -t &lt;container name&gt; gitlab-backup create</code></li><li><strong>数据库备份</strong>:跳过大文件,仅保留数据库</li><li><strong>secrets 文件备份</strong>:确保恢复时密钥一致性</li><li><strong>配置文件说明</strong>:环境变量配置无需额外备份</li></ul>
<p>到此这篇关于使用Docker容器备份GitLab完整过程的文章就介绍到这了,更多相关Docker备份GitLab内容请搜索琼殿技术社区以前的文章或继续浏览下面的相关文章希望大家以后多多支持琼殿技术社区!</p>
頁: [1]
查看完整版本: 使用Docker容器备份GitLab完整过程