使用 Docker 容器备份 GitLab 实例教程

在升级或维护 GitLab 自管理实例之前,备份是保障数据安全的关键步骤。本文将介绍如何在 Docker 容器环境下创建 GitLab 的完整备份与数据库备份,并说明 secrets 文件的重要性。


🛠 适用范围

  • 等级:免费版、高级版、终极版
  • 产品:GitLab 自管理(Self-Managed)
  • 环境:运行在 Docker 容器中的 GitLab

📦 创建完整备份

在容器中执行以下命令即可创建完整备份:

bash 复制代码
docker exec -t <container name> gitlab-backup create

该命令会生成包含数据库、仓库、制品等内容的备份文件,存储在容器挂载的卷目录中,通常是:

复制代码
/var/opt/gitlab/backups

🔑 备份 GitLab secrets 文件

除了数据库和仓库,secrets 文件同样重要。它包含 GitLab 的加密密钥和内部令牌,用于保障数据一致性和安全性。

  • 容器内路径:

    复制代码
    /etc/gitlab/gitlab-secrets.json
  • 宿主机挂载路径:

    复制代码
    $GITLAB_HOME/config/gitlab-secrets.json

请务必将该文件纳入备份,否则恢复时可能遇到复杂问题。


⚙️ 配置文件说明

如果你的 GitLab 配置完全通过环境变量提供(即使用 预配置 Docker 容器 ),那么 gitlab.rb 文件中不会存储配置设置。这种情况下,你无需额外备份配置档案。


🗄 创建数据库备份(轻量回滚用)

在升级 GitLab 前,建议创建一个仅包含数据库的备份,以便在升级失败时快速回滚。

执行以下命令:

bash 复制代码
docker exec -t <container name> gitlab-backup create SKIP=artifacts,repositories,registry,uploads,builds,pages,lfs,packages,terraform_state

此命令会跳过仓库、制品、注册表等大文件,仅备份数据库,生成的文件同样位于:

复制代码
/var/opt/gitlab/backups

🔄 回滚与恢复

如果升级过程中出现问题,可以利用上述备份进行回滚。具体步骤请参考 GitLab 官方文档中的 回滚 Docker 实例部分。


✅ 总结

在 Docker 环境下备份 GitLab 的关键步骤包括:

  • 完整备份docker exec -t <container name> gitlab-backup create
  • 数据库备份:跳过大文件,仅保留数据库
  • secrets 文件备份:确保恢复时密钥一致性
  • 配置文件说明:环境变量配置无需额外备份
相关推荐
程序员酥皮蛋7 小时前
docker基础
docker·容器·eureka
java知路10 小时前
linux yum 下载docker安装包及依赖安装包,并离线安装
linux·运维·docker
没有退路那我就不要散步11 小时前
kube-proxy优化
docker·容器·kubernetes
ai产品老杨12 小时前
解耦安防碎片化:基于 Docker 与边缘计算的 AI 视频管理平台架构演进(附 GB28181/RTSP 统一接入与源码交付实践)
人工智能·docker·边缘计算
ai产品老杨12 小时前
基于 Docker 与边缘计算的智能安防架构:解耦 GB28181/RTSP 多协议接入与异构芯片部署(附源码交付与 95% 降本实践)
docker·架构·边缘计算
xiami_world13 小时前
私有化部署协同白板选型指南:从Docker容器化到信创全栈适配的架构实践
运维·人工智能·docker·ai·持续部署
丑过三八线13 小时前
Kubernetes 常用命令速查手册
云原生·容器·kubernetes
bloglin9999914 小时前
docker镜像构建及部署样例
运维·docker·容器
SLD_Allen14 小时前
基于docker搭建sub2api图文教程
运维·docker·容器
江湖有缘16 小时前
Docker部署开源LinkAI大模型安全接入网关服务平台
安全·docker·开源