在Docker中部署GitLab

本文详细介绍如何使用Docker快速部署GitLab,并链接MySQL及Redis容器实现数据持久化。包括GitLab容器创建、数据库备份与恢复等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://registry.hub.docker.com/u/sameersbn/gitlab/#linking-to-mysql-container

https://xiongsongsong.github.io/gitlab/2014/06/01/%E5%9C%A8Docker%E4%B8%AD%E9%83%A8%E7%BD%B2GitLab/

http://17173ops.com/2014/11/11/gitlab%E6%90%AD%E5%BB%BA%E4%B8%8E%E7%BB%B4%E6%8A%A4%EF%BC%88%E5%9F%BA%E4%BA%8Edocker%E9%95%9C%E5%83%8Fsameersbndocker-gitlab%EF%BC%89.shtml

*****
Quick Start:
创建Gitlab container:
docker run --name='gitlab' -it --rm -e 'GITLAB_PORT=10080' -e 'GITLAB_SSH_PORT=10022' -p 10022:22 -p 10080:80 -v /var/run/docker.sock:/run/docker.sock  -v $(which docker):/bin/docker sameersbn/gitlab:7.5.1




*****
Linking to MySQL Container:
创建文件:
mkdir -p /opt/mysql/data
启动mysql container:
docker run --name=mysql -d -e 'DB_NAME=gitlabhq_production' -e 'DB_USER=gitlab' -e 'DB_PASS=password' -v /opt/mysql/data:/var/lib/mysql sameersbn/mysql:latest
创建Gitlab container:
docker run --name=gitlab -d --link mysql:mysql -v /opt/gitlab/data:/home/git/data sameersbn/gitlab:7.5.1


docker run --name='gitlab' -it --rm -e 'GITLAB_PORT=10080' -e 'GITLAB_SSH_PORT=10022' -p 10022:22 -p 10080:80 -v /var/run/docker.sock:/run/docker.sock  -v $(which docker):/bin/docker --link mysql:mysql -v /opt/gitlab/data:/home/git/data sameersbn/gitlab:7.5.1




*****
Linking to Redis Container:
创建redis container:
docker run --name=redis -d sameersbn/redis:latest
创建Gitlab container:
docker run --name=gitlab -d --link redis:redisio sameersbn/gitlab:7.5.1


docker run --name='gitlab' -it --rm -e 'GITLAB_PORT=10080' -e 'GITLAB_SSH_PORT=10022' -p 10022:22 -p 10080:80 -v /var/run/docker.sock:/run/docker.sock  -v $(which docker):/bin/docker --link mysql:mysql -v /opt/gitlab/data:/home/git/data --link redis:redisio sameersbn/gitlab:7.5.1


*****
Restoring Backups:
关闭gitlabcontainer:
docker stop gitlab
备份:
docker run --name=gitlab -it --rm [OPTIONS] sameersbn/gitlab:7.5.1 app:rake gitlab:backup:create

docker run --name='gitlab_backup' -it --rm --link mysql:mysql --link redis:redisio -v /var/run/docker.sock:/run/docker.sock -v $(which docker):/bin/docker -v /opt/gitlab/data:/home/git/data -v /opt/gitlab/log:/var/log/gitlab  sameersbn/gitlab:7.5.1 app:rake gitlab:backup:create




*****
Restoring Backups:
恢复备份:
docker run --name='gitlab_restore' -it --rm --link mysql:mysql --link redis:redisio -v /var/run/docker.sock:/run/docker.sock -v $(which docker):/bin/docker -v /opt/gitlab/data:/home/git/data -v /opt/gitlab/log:/var/log/gitlab sameersbn/gitlab:7.5.1 app:rake gitlab:backup:restore


注意:复时会将当前数据库中的所有表先删掉再导入备份tar包的里sql文件,因此此步要小心


### 一、Docker 环境准备 在离线环境中部署 DockerGitLab 的第一步是确保目标机器上已经安装好 Docker。如果无法通过在线方式(如 `curl` 或者 `apt`)来安装 Docker,则可以通过以下方法完成: - 将 Docker 的二进制文件从有网络连接的机器下载下来,复制到目标机器后再手动安装。 - 使用命令解压并设置环境变量以启动服务[^1]。 ```bash tar -xvzf docker.tgz cp docker/* /usr/bin/ ``` 随后验证 Docker 是否成功运行: ```bash docker version ``` ### 二、GitLab 镜像获取与加载 由于处于无网环境下,需提前在网络可达的地方拉取所需的镜像,并将其导出为 tar 文件再传输至目标主机。 #### 导出镜像 在网络上可用设备执行如下操作获得最新版本的 GitLab CE 社区版镜像: ```bash docker pull gitlab/gitlab-ce:latest docker save -o gitlab-ce.tar gitlab/gitlab-ce:latest ``` 接着把生成好的 `gitlab-ce.tar` 移植给线下服务器。 #### 加载镜像 到达目的端后恢复刚才备份下来的镜像档案: ```bash docker load < gitlab-ce.tar ``` 确认导入后的镜像状态正常与否可通过列表展示功能检验: ```bash docker images ``` 此时应该能看到刚加入系统的 GitLab 容器映象记录存在其中。 ### 三、GitLab 配置与初始化 创建必要的数据卷用于持久化存储以及日志管理等方面的需求;定义好外部访问地址等相关参数设定完成后即可正式开启实例化进程[^2]。 ```bash mkdir -p /srv/gitlab/{config,data,logs} 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 ``` 等待一段时间让整个过程结束之后可以尝试登录界面,默认管理员账号初次进入时会提示修改初始密码流程指引用户完成安全加固措施[^3]。 另外需要注意的是某些特定场景下可能还需要调整内部通信机制或者增加额外插件支持等功能扩展部分则依据实际需求另行处理就好啦! ### 四、总结说明 综上所述,在完全断开互联网接入条件下依然能够顺利完成基于 Docker 技术栈搭建起一套完整的 GitLab 版本控制系统解决方案的关键在于前期准备工作充分到位——即先于具备公网条件下的计算节点之上妥善安排好所有必需组件资源包文件形式转移过来加以利用从而达成预期效果。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值