GitLab Docker Compose 迁移教程

这篇教程教你如何把 GitLab 从旧服务器迁移到新服务器,确保服务正常运行、数据完整,并解决常见权限问题。


🧰 一、迁移前准备

1. 停止旧服务器上的 GitLab 容器

bash 复制代码
docker-compose down

2. 打包 GitLab 数据目录

假设你的 GitLab 数据目录是 /data/gitlab

bash 复制代码
cd /data
tar -czf gitlab-backup.tar.gz gitlab/

3. 把备份文件传到新服务器

在旧服务器执行:

bash 复制代码
scp gitlab-backup.tar.gz root@新服务器IP:/tmp/

🖥️ 二、新服务器操作

1. 要求已经安装 Docker 和 Docker Compose

从零开始部署 GitLab CE 18.4.2:Docker Compose 新手教程

2. 解压数据到目标目录

bash 复制代码
cd /data
tar -xzf /tmp/gitlab-backup.tar.gz

🚀 三、启动 GitLab

你可以直接使用原来的 docker-compose.yml.env 文件,无需重新创建。

启动容器:

bash 复制代码
docker-compose up -d

查看日志:

bash 复制代码
docker-compose logs -f

🧯 四、解决权限问题(如果遇到)

如果容器日志中出现权限错误,比如:

复制代码
Permission denied

可以使用 GitLab 内置命令修复权限:

bash 复制代码
docker exec -it gitlab-server update-permissions

这个命令会自动修复配置、日志、数据目录的权限问题,适合新手使用。gitlab-server为docker-compose.yml中的container_name: ${CONTAINER_NAME}


✅ 五、验证是否成功

  1. 等待几分钟,GitLab 启动完成;
  2. 浏览器访问:http://新服务器IP
  3. 如果需要初始密码:
bash 复制代码
docker exec -it gitlab-server cat /etc/gitlab/initial_root_password

📌 总结

步骤 说明
停止旧容器 保证数据一致性
打包数据 使用 tar 命令
传输备份 用 scp 或 rsync
解压数据 放到新服务器的 /data 目录
启动容器 使用原来的配置文件
修复权限 update-permissions 命令
验证访问 浏览器打开 GitLab 页面
相关推荐
是一个Bug10 小时前
Docker 与 Kubernetes:从“集装箱”到“远洋舰队”
docker·容器·kubernetes
java_cj10 小时前
阅读 k8s 源码的准备工作
云原生·容器·kubernetes
开发者联盟league11 小时前
使用Jenkins整合Sonarqube/Gitlab/Harbor/Kubernetes实现CICD
kubernetes·gitlab·jenkins
枫叶林FYL11 小时前
项目十一:Saga模式分布式旅行预订系统 核心服务实现与Saga编排器
数据库·python·docker
取名好樊11 小时前
Windows Docker PostgreSQL 端口绑定失败问题记录
windows·docker·postgresql
ai产品老杨11 小时前
深度解析:基于Docker构建的安防视频AI平台——如何通过GB28181/RTSP协议栈统一接入与全套源码交付,破局异构边缘计算芯片内卷
人工智能·docker·音视频
AI服务老曹11 小时前
基于Docker与边缘计算的企业级AI视频平台架构演进:GB28181/RTSP多协议接入与源码交付深度解析
人工智能·docker·边缘计算
蜀道山老天师11 小时前
OpenClaw 从零部署 + 飞书机器人完整接入(实操篇)
运维·docker·容器·飞书
zyl8372111 小时前
前后端项目自动部署方案主流实现方案
ci/cd·gitlab·github
robinLi091311 小时前
docker mac 下载不同系统架构镜像
macos·docker·容器