1 备份
1.1 进入docker容器
# 此处gitlab是我启动容器时给gitlab设置的别名,此处也可用容器id
docker exec -it gitlab bash
1.2 执行备份命令
# 备份gitlab 执行完成后会在容器的/var/opt/docker/backups 下生成结尾为.tar的备份文件
gitlab-backup create
# 退出容器 将容器内备份好的tar文件拷贝至宿主机
docker cp gitlab:var/opt/gitlab/backups/1675388524_2023_02_03_15.6.1_gitlab_backup.tar /home/backups/
1.3 备份json和rb文件
docker cp gitlab:/etc/gitlab/gitlab-secrets.json /home/backups/
docker cp gitlab:/etc/gitlab/gitlab.rb /home/backups/
2 恢复
启动新的容器,将我们备份好的文件直接复制到新容器里
docker cp /home/backups/1675388524_2023_02_03_15.6.1_gitlab_backup.tar gitlab:/var/opt/gitlab/backups/
docker cp /home/backups/gitlab-secrets.json gitlab:/etc/gitlab/
docker cp /home/backups/gitlab.rb gitlab:/etc/gitlab/
此时 运行加载备份文件
# 注意文件名称
gitlab-backup restore BACKUP=1675388524_2023_02_03_15.6.1
此时报错没有权限
# 给文件赋权限 继续执行上一步
chmod 777 1675388524_2023_02_03_15.6.1_gitlab_backup.tar
出现此处基本上就算成功了
重新加载配置及重启
gitlab-ctl reconfigure
gitlab-ctl restart
注意 两个gitlab的版本必须一致,否则会报错