docker安装的gitlab的备份与恢复

docker安装的gitlab的备份与恢复

docker 安装完gitlab后,使用起来很方便,但是数据量不断增大,需要及时做好备份,以免出了问题之后数据丢失

1.对docker容器安装gitlab备份

我的上一篇文章是docker搭建gitlab
安装命令是:
sudo docker run --detach --hostname gitlab --restart always --publish 443:443 --publish 80:80 --publish 32:22 --name mygitlab --volume /srv/gitlab/config:/etc/gitlab --volume /srv/gitlab/logs:/var/log/gitlab --volume /srv/gitlab/data:/var/opt/gitlab 22822ee2d3c0

我做了文件卷的映射,把容器内的文件映射到容器外,主机上,在根目录的/srv文件夹
那个备份分2步(没做映射的容器不需要备份这个文件)

①备份gitlab文件

tar -zcvf srv20190606.tar.gz /srv
将 srv20190606.tar.gz文件从云服务器下载到本地

②备份gitlab容器,整体打包成镜像文件

1) 查看容器id

# docker ps
在这里插入图片描述

2)将容器备份成镜像文件

# docker commit -a ‘汪敏’ -m ‘gitlab备份’ 9e7849fa0dbe wangmin/gitlab:3.0
-a 作者
-m 提交的注释信息
9e7849fa0dbe 容器id
wangmin/gitlab:3.0 镜像名称:版本号
docker安装的gitlab的备份与恢复_第1张图片

3)查看镜像,有刚才备份的镜像

docker安装的gitlab的备份与恢复_第2张图片

③)可以进一步将镜像文件备份成.tar.gz文件,也可以直接讲镜像push到阿里云

3.1 )将镜像文件备份成.tar.gz文件

# docker save b8c5a9990c6e > ./gitlab20190606.tag.gz
docker安装的gitlab的备份与恢复_第3张图片
至此gitlab备份完成,将gitlab20190606.tag.gz 和 srv20190606.tar.gz 2个 备份文件下载到本地即可

3.2)将镜像push到阿里云镜像仓库

docker安装的gitlab的备份与恢复_第4张图片

3.2.1若没有创建过镜像仓库,要先创建一个镜像仓库,并设置仓库密码

docker安装的gitlab的备份与恢复_第5张图片
然后就能看到如下页面,照着上面的步骤操作即可

3.2.2 将镜像发布到阿里云仓库

将镜像推送到Registry
$ sudo docker login --username=xxx registry.cn-beijing.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-beijing.aliyuncs.com/wangmin/repository:[镜像版本号]
$ sudo docker push registry.cn-beijing.aliyuncs.com/wangmin/repository:[镜像版本号]

3.2.3 查看镜像

docker安装的gitlab的备份与恢复_第6张图片

3.2.4 将阿里云上的镜像拉取到本地

从Registry中拉取镜像
$ sudo docker pull registry.cn-beijing.aliyuncs.com/wangmin/repository:[镜像版本号]
至此,gitlab备份完成,将gitlab镜像 和 srv20190606.tar.gz 2个 备份文件下载到本地即可

2. gitlab在docker容器中恢复

经过上面的备份,相信你已经将备份文件下载到本地了,下面说下怎么在本地恢复使用

2.1 srv目录恢复

将 srv20190606.tar.gz文件解压
# mv srv20190606.tar.gz /
# tar -zxf srv20190606.tar.gz
在根目录下查看,有/srv目录
docker安装的gitlab的备份与恢复_第7张图片
由于docker容器内部访问宿主机的文件,并不是root用户创建的,没有root权限,需要给文件添加权限
# chmod -R 777 srv 给srv文件夹下面的所有文件添加读写可执行权限

2.2 启动gitlab备份的镜像文件

若是.tar.gz 文件,先将该文件加载成 镜像文件
docker load < ./gitlab20190606.tag.gz

重新执行容器启动命令
sudo docker run --detach --hostname gitlab --restart always --publish 443:443 --publish 80:80 --publish 32:22 --name mygitlab --volume /srv/gitlab/config:/etc/gitlab --volume /srv/gitlab/logs:/var/log/gitlab --volume /srv/gitlab/data:/var/opt/gitlab 22822ee2d3c0
然后查看启动的容器
在这里插入图片描述
然后通过ip访问即可,gitlab在本地正常启动了!!!
docker安装的gitlab的备份与恢复_第8张图片
是不是很神奇!

你可能感兴趣的:(linux,git,docker)