Docker 方式部署 Gitlab 并使用自定义的http端口
一、docker 方式安装 Gitlab
安装镜像
docker run --detach \
--name gitlab \
-p 8081:80 \
-p 10022:22 \
--restart always \
-v /backup/gitlab/config:/etc/gitlab \
-v /backup/gitlab/logs:/var/log/gitlab \
-v /backup/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
参数解释
--name : 容器的名字
--p xxx:yyy : 端口映射,xxx为宿主机的端口,yyy为容器的端口,即将容器的yyy端口映射到宿主机的xxx端口,访问宿主机的xxx端口相当于访问容器的yyy端口
--restart always : 使用always表示docker重启时容器也会自动重启
-v 宿主机的路径:容器内的路径 : 将容器的文件映射到宿主机上,方便做迁移
二、自定义使用的端口
查看容器的ID
wmg@debian:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1132de0d1960 gitlab/gitlab-ce:latest "/assets/wrapper" 19 hours ago Up 2 minutes (healthy) 80/tcp, 443/tcp, 0.0.0.0:8081->8081/tcp, 0.0.0.0:10022->22/tcp gitlab
记住CONTAINER ID
在做操作之前,为了防止意外,先将容器和docker停了
docker stop gitlab // 停止容器,gitlab是容器的名字
systemctl stop docker // 停止docker
我们需要将http的端口改为访问8081,同时在克隆的时候的地址是对的,gitlab的ssh的端口改为宿主机的10022。
修改宿主机的 /var/lib/docker/containers/容器ID/ 目录下的config.v2.json,hostconfig.json文件
root@debian:~# cd /var/lib/docker/containers/1132de0d1960e1049a3f1f014b2ba215442a6c7f23f4983b324e055306822c52/
root@debian:/var/lib/docker/containers/1132de0d1960e1049a3f1f014b2ba215442a6c7f23f4983b324e055306822c52# ls
1132de0d1960e1049a3f1f014b2ba215442a6c7f23f4983b324e055306822c52-json.log checkpoints config.v2.json hostconfig.json hostname hosts mounts resolv.conf resolv.conf.hash
config.v2.json
hostconfig.json
Tips:使用vim编辑是如果没有格式化的话,可读性会非常差,命令模式下使用 :%!python -m json.tool 格式化json文档会非常舒服
修改容器内的gitlab配置文件/etc/gitlab/gitlab.rb
因为我将/etc/gitlab映射到了/backup/gitlab/config下了,所以我直接进这个目录修改gitlab.rb文件,以下几行参数
external 'http://192.168.88.213:8081'
nginx['listen_port'] = 8081
gitlab_rails['gitlab_shell_ssh_port'] = 10022
改好之后将docker和容器启动就好了
效果如下
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现