学习目标:
windows版docker部署的gitlab,备份后迁移到另一个服务器
学习内容:
Docker 部署的 GitLab 备份
如果你使用 Docker 部署的 GitLab,需要进入到 GitLab 容器内部执行备份命令。
1. 进入 GitLab 容器
使用以下命令进入正在运行的 GitLab 容器:
docker exec -it <container_name_or_id> bash
<container_name_or_id> 是你 GitLab 容器的名称或者 ID,你可以通过 docker ps 命令查看。
2. 执行备份命令
进入容器后,执行与原生部署相同的备份命令:
gitlab-backup create
同样,备份文件会生成在容器内的 /var/opt/gitlab/backups 目录;文件名类似 1691234567_2024_07_20_16.1.0_gitlab_backup.tar
3. 将备份文件从容器复制到宿主机
为了方便管理和存储,你可以将生成的备份文件从容器复制到宿主机,使用以下命令:
docker cp <container_name_or_id>:/var/opt/gitlab/backups/<backup_file_name> /path/on/host
<backup_file_name> 是你在容器内生成的备份文件名, /path/on/host 是宿主机上要存放备份文件的路径。
以下是在 Windows 版 Docker 上,将 GitLab 备份数据加载到新的 GitLab 容器的详细教程:
前提条件
- 已经在旧的 GitLab Docker 容器中完成了数据备份,并且备份文件可用。
- 安装了 Windows 版 Docker。
步骤
1. 拉取 GitLab Docker 镜像
首先,你需要从 Docker Hub 拉取最新的 GitLab 镜像。打开 PowerShell 或命令提示符,运行以下命令:
docker pull gitlab/gitlab-ce:latest
2. 创建新的 GitLab 容器
在创建容器之前,你需要准备好数据存储目录。在 Windows 上,你可以选择一个合适的本地目录,例如 C:\\gitlab-data。将旧服务器gitlab挂载的文件复制到对应本地目录。然后,运行以下命令创建并启动一个新的 GitLab 容器:
docker run –d \\
—hostname gitlab.example.com \\
–p 80:80 –p 443:443 –p 22:22 \\
—name gitlab \\
—restart always \\
–v C:\\gitlab-data\\config:/etc/gitlab \\
–v C:\\gitlab-data\\logs:/var/log/gitlab \\
–v C:\\gitlab-data\\data:/var/opt/gitlab \\
gitlab/gitlab-ce:latest
- –hostname:指定 GitLab 的主机名。
- -p:映射容器的端口到主机的端口。
- –name:指定容器的名称。
- –restart always:设置容器在 Docker 启动时自动启动。
- -v:挂载本地目录到容器内的指定目录。
3. 等待 GitLab 容器初始化完成
新容器启动后,GitLab 需要一些时间来初始化。你可以通过查看容器日志来检查初始化状态:
docker logs –f gitlab
当看到类似以下信息时,表示 GitLab 已经初始化完成:
==> /var/log/gitlab/gitlab-rails/production.log <==
Started GET "/" for 172.17.0.1 at 2025-05-16 08:14:30 +0000
4. 复制备份文件到容器内
将之前备份的 GitLab 数据文件复制到新容器内的 /var/opt/gitlab/backups 目录。假设备份文件名为 1234567890_2025_05_16_15.0.0_gitlab_backup.tar,你可以使用以下命令进行复制:
docker cp 1234567890_2025_05_16_15.0.0_gitlab_backup.tar gitlab:/var/opt/gitlab/backups
5. 恢复备份数据
进入 GitLab 容器的 shell:
docker exec –it gitlab /bin/bash
在容器内,使用以下命令恢复备份数据:
gitlab-backup restore BACKUP=1234567890_2025_05_16_15.0.0
注意:BACKUP 参数的值为备份文件的前缀,即去掉 .tar 后的部分。
在恢复过程中,你可能需要输入一些确认信息,按照提示操作即可。恢复完成后,退出容器的 shell:
exit
6. 重启 GitLab 容器
为了使恢复的数据生效,你需要重启 GitLab 容器:
docker restart gitlab
7. 验证恢复结果
等待容器重启完成后,打开浏览器,访问 http://localhost(如果你使用的是默认端口),登录 GitLab 并检查项目、用户等数据是否已经恢复。
注意事项
- 确保备份文件的版本与新容器中 GitLab 的版本兼容。如果版本不兼容,可能会导致恢复失败。
- 在恢复过程中,可能会遇到一些权限问题。如果遇到问题,可以尝试修改备份文件的权限或使用 root 用户执行恢复命令。
评论前必须登录!
注册