一、备份
1、首先查看docker中运行的容器,找到运行gitlab的容器id
linux shell 窗口中执行如下命令:
docker ps
2、进入docker容器
docker exec -i -t 4d5e099d20af /bin/bash
3、创建备份
执行命令:
gitlab-rake gitlab:backup:create
备份完成后生成的文件:
1669876030_2022_12_01_11.1.4_gitlab_backup.tar
备份文件所在目录为git数据卷目录中的backups
4.拷贝文件
一般是在下面这个目录
root@80722339a402:/var/opt/gitlab/backups#
如果没有挂载数据卷,但是又不知道文件在哪里,可以使用命令在linux本机上查找这个备份的文件
假设我有一个名为test.txt
的文件,我需要找到它但是不确定具体位于哪个目录下。我可以执行下面的命令,从文件系统的顶部/
开始搜索。
find / -type f -name test.txt
具体含义为:
-
/
表示从文件系统的顶部开始搜索。 -
-type
是你要寻找的东西的类型。f
表示文件,b
表示块状特殊设备文件,c
表示字符特殊设备文件,d
表示目录,l
表示符号链接。 -
-name
是你要寻找的东西的名字,结果将完全匹配。
find / -type f -name 1669876030_2022_12_01_11.1.4_gitlab_backup.tar
二.恢复
1、把备份文件上传到新服务器的gitlab数据卷backups目录中
2、进入dokcer 容器 gitlab(使用挂载数据卷的方式启动)
docker exec -i -t gitlab /bin/bash
3、恢复备份
此处有个大坑,一定要指定路径,并且文件的一些后缀不需要加,要手动删除一些后缀
gitlab-rake gitlab:backup:restore BACKUP=/var/opt/gitlab/backups/1669876030_2022_12_01_11.1.4
4.停止相关数据链接
gitlab-ctl stop unicorn gitlab-ctl stop sidekiq
5.重启
gitlab-ctl restart
完成后访问WEB检查了下没有什么问题。