备份迁移docker部署的gitlab

1.原服务器上docker镜像的打包

#打包gitlab
docker save -o gitlab.tar sameersbn/gitlab:v1
#打包postgresql
docker save -o postgresql.tar sameersbn/postgresql:11-20200524
#打包redis
docker save -o redis.tar sameersbn/redis:4.0.9-2
#xxx.tar 打包后的名称   xxxxx:xxxxx服务器上镜像的名称加tag

2.备份gitlab数据

docker exec -it gitlab bash
./entrypoint.sh app:rake gitlab:backup:create
#备份的数据在gitlab的backups目录下

3.拷贝打包的镜像和备份的数据到本地上传目标服务器或者直接scp传输到要目标服务器

#1.如果同一网段,直接通过scp命令进行远程传输。
scp -r   gitlab.tar root@192.168.17.2:/usr/local/src/
scp -r   redis.tar root@192.168.17.2:/usr/local/src/
scp -r   postgresql.tar root@192.168.17.2:/usr/local/src/
scp -r 1658646457_2022_07_24_13.5.3_gitlab_backup.tar root@192.168.17.2:/usr/local/src/
#scp -r   文件  用户名@地址:路径
#2.不同网段,需要先传输到本地,再进行上传到另一台服务器

4.加载镜像

docker load -i gitlab.tar
docker load -i redis.tar
docker load -i postgresql.tar

5.创建时区文件

echo 'Asia/Shanghai' > /etc/timezone

6.启动gitlab-postgresql 192.168.17.2 这个ip要改为服务器的IP

docker run --name  gitlab-postgresql --privileged \
 --restart=always -e TZ=Asia/Shanghai \
 -v /etc/timezone:/etc/timezone -d  \
-p 5432:5432 \
--env 'DB_HOST=192.168.17.2' \
 --env 'DB_NAME=gitlabhq_production'   \
 --env 'DB_USER=gitlab' \
 --env 'DB_PASS=Xw599wb20H4jHIh9'  \
 --env 'DB_EXTENSION=pg_trgm,btree_gist'  \
 --volume /srv/gitlab/postgresql:/var/lib/postgresql  \
 sameersbn/postgresql:11-20200524

7.启动 gitlab-redis

docker run --name gitlab-redis \
 --privileged --restart=always \
-p 6379:6379 \
 -e TZ=Asia/Shanghai \
 -v /etc/timezone:/etc/timezone -d \
 --volume /srv/gitlab/redis:/var/lib/redis \
 sameersbn/redis:4.0.9-2

8.启动 gitlab 192.168.17.2 这个ip要改为服务器的IP

docker run --name gitlab \
 -e TZ=Asia/Shanghai \
 --privileged --restart=always \
 -v /etc/timezone:/etc/timezone -d \
 --publish 10022:22 --publish 8090:80  \
 --env 'DB_NAME=gitlabhq_production'   \
 --env 'DB_USER=gitlab' \
 --env 'DB_PASS=Xw599wb20H4jHIh9'  \
 --env 'DB_EXTENSION=pg_trgm'  \
 --env 'DB_HOST=192.168.17.2' \
--env 'REDIS_HOST=192.168.17.2' \
--env 'REDIS_PORT=6379' \
--env 'GITLAB_PORT=80' \
 --env 'GITLAB_SSH_PORT=10022'  \
 --env 'GITLAB_SECRETS_DB_KEY_BASE=iwYPxsBTAjQZX47hq3xHEOcAyukJRK'  \
 --env 'GITLAB_SECRETS_SECRET_KEY_BASE=iMrzozMfEaIO53M0q0MMtQtulESTAd'  \
 --env 'GITLAB_SECRETS_OTP_KEY_BASE=1by1Ev1lcKna1sGnfE4d24XrkwMcy7'  \
 --env 'GITLAB_HOST=192.168.17.2'  \
 --env 'GITLAB_BACKUP_SCHEDULE=daily' \
 --env 'GITLAB_BACKUP_TIME=03:00' \
 --volume /srv/gitlab/gitlab:/home/git/data  \
 sameersbn/gitlab:13.5.3

9.恢复

docker exec -it gitlab bash
./entrypoint.sh app:rake gitlab:backup:restore BACKUP=1658646457_2022_07_24_13.5.3
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容