# 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`。

這里有好多個備份,選一個日期最新的。
再把它上傳到服務器上。
如果覺得都不新,可以創建一個最新的,使用下面的命令:
```
$ 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
```

之后可能會報錯:

沒關系,你再把`docker-compose up`運行一下,再開一個終端去運行之前的恢復命令。

數據庫和倉庫都會幫我恢復
所有數據都回來了,good job!

完結。
- 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 項目