# 13. docker 迁移 GitLab 项目
#### 1. 介绍
现在我需要把docker部署的gitlab应用迁移到另一台主机上。
**如果不知道如何用docker来搭建gitlab服务的,可以参照我以前的一篇文章[使用 compose 部署 GitLab 应用 (八)](https://www.rails365.net/articles/shi-yong-compose-bu-shu-gitlab-ying-yong-ba)**
#### 2. 流程
首先gitlab是会每天做一次备份的,备份文件位于`/srv/docker/gitlab/gitlab/backups`。
![](https://box.kancloud.cn/7b77c28a5354b3fd0ea9cab1e96f6a22_2028x212.png)
这里有好多个备份,选一个日期最新的。
再把它上传到服务器上。
如果觉得都不新,可以创建一个最新的,使用下面的命令:
```
$ docker run --name gitlab -it --rm \
sameersbn/gitlab:9.0.5 app:rake gitlab:backup:create
```
不管怎样,就是要找一个备份,然后上传到新的服务器上。
注意:**这个备份所使用gitlab的版本和新的服务器上使用的gitlab的版本要一致,不然不能成功迁移的**
新的服务器的备份的文件存放的位置跟之前的一样,也是:`/srv/docker/gitlab/gitlab/backups`。
执行下面的命令可以恢复备份:
```
$ docker-compose run --rm gitlab app:rake gitlab:backup:restore
```
![](https://box.kancloud.cn/de04916642329082c233d735a6476fa8_1672x1192.png)
之后可能会报错:
![](https://box.kancloud.cn/79c2c04093182de5d01830c6c3de3fc1_1726x1056.png)
没关系,你再把`docker-compose up`运行一下,再开一个终端去运行之前的恢复命令。
![](https://box.kancloud.cn/6447465ff3229408db4bd1b599934b29_1006x1160.png)
数据库和仓库都会帮我恢复
所有数据都回来了,good job!
![](https://box.kancloud.cn/d26c09a920d3fca45b0ada5cf814a637_2872x1242.png)
完结。
- 0. 介绍
- 1. 安装 docker
- 2. docker 的镜像和镜像源加速
- 3. docker 的容器
- 4. 理解 docker 镜像的层叠结构
- 5. 使用 Dockerfile 文件
- 6. docker 的数据卷
- 7. Docker Compose 的介绍与安装
- 8. 使用 compose 部署 GitLab 应用
- 9. 使用 compose 部署 Rocket.Chat 应用
- 10. docker 部署深入理解
- 11. 部署 owncloud 与 phpMyAdmin
- 12. 让 php-fpm 跑的 owncloud 应用 docker 化
- 13. docker 迁移 GitLab 项目