使用 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 文件备份:确保恢复时密钥一致性
  • 配置文件说明:环境变量配置无需额外备份
相关推荐
爱宇阳2 小时前
使用 Docker 容器备份与 Docker Compose 升级 GitLab 实例教程
docker·eureka·gitlab
Linux云计算+运维开发2 小时前
k8s集群(k8s-v1.35.0)
云原生·容器·kubernetes
木童6622 小时前
Docker 容器化 Web 服务全流程实践(含网络深度场景)
前端·网络·docker
Joren的学习记录13 小时前
【Linux运维大神系列】docker详解(四)
linux·运维·docker
louqle15 小时前
docker基本知识及常用命令汇总
运维·docker·容器
叫致寒吧15 小时前
Docker
运维·docker·容器
杨浦老苏16 小时前
现代流媒体聚合播放器冬瓜TV MAX
docker·群晖·多媒体
l1t17 小时前
用docker安装oracle 19c
运维·数据库·docker·oracle·容器
weixin_4624462318 小时前
【原创实践】Docker 镜像批量导出镜像与导入镜像
运维·docker·容器