记docker gitlab的一次迁移

首先在gitlab容器里使用gitlab-rake gitlab:backup:create生成一个tar包。
将该tar包复制到另一台服务器中,再用docker pull相应版本的gitlab,我这里的版本为10.4.1。
将pull下来的镜像运行起来:
docker run -d -p 8443:443 -p 8080:80 -p 2222:22 --name gitlab -v /opt/gitlab/data:/root/gitlab/data -v /opt/gitlab/log:/root/gitlab/log gitlab/gitlab-ce
运行起来后进入容器里,将文件1619178584_2021_04_23_10.4.1_gitlab_backup.tar拷贝至/var/opt/gitlab/backups后,在该路径下执行命令gitlab-rake gitlab:backup:restore BACKUP=1619178584_2021_04_23_10.4.1前需要先关闭gitlab服务,gitlab-ctl stop
如果出现错误:

Unpacking backup ... tar: 1619178584_2021_04_23_10.4.1_gitlab_backup.tar: Cannot open: Permission denied
tar: Error is not recoverable: exiting now
unpacking backup failed

需要先修改该文件权限

### 如何在 Docker 中升级 GitLab #### 准备工作 为了确保顺利升级,在执行任何操作之前,建议备份现有数据。这可以通过停止当前容器并将卷中的数据复制到安全位置来完成[^1]。 ```bash docker stop gitlab_container_name docker cp gitlab_container_name:/var/opt/gitlab /path/to/safe/location/ ``` #### 停止旧版本的服务 在开始升级过程前,先要停止正在运行的老版本GitLab实例: ```bash docker stop gitlab_container_name docker rm gitlab_container_name ``` #### 下载新版本镜像 接着拉取最新的官方GitLab Docker镜像,这里假设目标是最新的稳定版: ```bash docker pull gitlab/gitlab-ce:latest ``` #### 启动新版服务并迁移数据 利用先前保存的数据重新启动GitLab容器,并指定挂载点以便恢复原有配置和数据库状态: ```bash docker run --detach \ --hostname gitlab.example.com \ --publish 443:443 --publish 80:80 --publish 22:22 \ --name gitlab \ --restart always \ --volume /srv/gitlab/config:/etc/gitlab \ --volume /srv/gitlab/logs:/var/log/gitlab \ --volume /srv/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest ``` 上述命令会读取`/srv/gitlab/config`目录下的设置文件来进行初始化;如果这是首次安装,则该路径下应为空或仅含默认配置。 #### 验证更新成功 最后一步是验证升级后的GitLab是否正常运作。打开浏览器访问设定好的主机名(本例中为`gitlab.example.com`),确认界面显示无误且功能完好即可认为升级顺利完成。 #### 清理过期资源 一旦确认一切运转良好,可以选择删除不再使用的旧版本镜像以释放空间: ```bash docker image prune -f ``` 此命令将移除所有悬空(dangling)镜像——即那些未被任何容器引用的中间层图像。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值