Linux (Docker环境)GitLab本地部署指南

Linux Docker 环境) GitLab 本地部署指南

一、适用环境说明

本指南适配以下网络环境(基于VM网卡信息):

  • 主网卡:ens33(状态UP,对外通信网卡)
  • VM有效IP:192.168.5.130(用于GitLab外部访问)
  • 容器网络:docker0(默认Docker桥接网络,已正常启用)
  • 部署方式:Docker容器化部署(GitLab CE社区版)

二、前置条件确认

部署前需确保VM满足以下条件,避免启动失败或访问异常:

  1. Docker 环境就绪
  • Docker版本≥20.10,服务正常运行
  • 检查命令:systemctl status docker
  • 启动/自启命令(若未运行):
  • systemctl start docker
    systemctl enable docker
  1. 资源充足:至少4GB内存 + 2核CPU(GitLab初始化及运行对资源要求较高,内存不足会导致卡顿或启动失败)
  1. 端口开放:需开放80(HTTP访问)、443(HTTPS访问,可选)、2222(SSH代码拉取,避免与主机22端口冲突)

三、完整部署步骤

3.1****创建持久化数据卷

为避免容器删除后GitLab配置、数据、日志丢失,需创建3个独立数据卷持久化存储:

|------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash docker volume create gitlab-config # 存储GitLab配置文件 docker volume create gitlab-data # 存储GitLab核心数据(仓库、用户信息等) docker volume create gitlab-logs # 存储GitLab运行日志 |

3.2****启动 GitLab 容器

使用以下命令启动容器,已内置你的VM IP(192.168.5.130),可直接复制执行:

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash docker run --detach \ --name gitlab \ --restart always \ --publish 80:80 \ --publish 443:443 \ --publish 2222:22 \ --volume gitlab-config:/etc/gitlab \ --volume gitlab-data:/var/opt/gitlab \ --volume gitlab-logs:/var/log/gitlab \ --env GITLAB_OMNIBUS_CONFIG="external_url 'http://192.168.5.130'; gitlab_rails['gitlab_shell_ssh_port'] = 2222;" \ gitlab/gitlab-ce:latest |

参数说明:

  • --detach:后台运行容器
  • --restart always:容器异常退出时自动重启,保证服务稳定性
  • --publish:端口映射,主机端口:容器端口(2222映射容器22端口,规避主机SSH端口冲突)
  • --volume:将数据卷挂载到容器对应目录,实现数据持久化
  • GITLAB_OMNIBUS_CONFIG:指定外部访问地址(VM IP)和SSH端口,确保访问正常

3.3****等待初始化完成

GitLab首次启动需加载配置、初始化组件,耗时5-10分钟(取决于VM性能),可通过日志查看进度:

|----------------------------|
| bash docker logs -f gitlab |

当日志中出现 gitlab Reconfigured! 提示时,说明初始化完成,可停止日志监听(Ctrl+C)。

注:如果 没发现 gitlab Reconfigured! 出现就行

测试:是否初始化完成

复制代码
# 1. 检查GitLab容器状态(应为Up状态)
docker ps | grep gitlab

# 2. 本地浏览器访问(或VM内curl测试)
curl http://192.168.5.130  # 能返回GitLab登录页面的HTML内容即说明完全就绪

# 3. 查看GitLab核心服务状态(进入容器执行)
docker exec -it gitlab gitlab-ctl status

四、后续访问与配置

4.1****获取初始 root 密码

GitLab初始root账号密码存储在容器内指定文件,执行以下命令获取:

|-------------------------------------------------------------------|
| bash docker exec -it gitlab cat /etc/gitlab/initial_root_password |

|------------------------------------|
| 注意:该文件会在首次登录后24小时自动删除,建议获取后立即修改密码。 |

4.2****访问 GitLab 并修改密码

  1. 本地浏览器输入地址:http://192.168.5.130
  1. 登录界面输入账号 root 和上述获取的初始密码
  1. 情况一:有自动修改密码提示:按提示设置强密码(需满足:长度≥8位,含大小写字母、数字、特殊字符,且避开GitLab、root等系统关键词及常用组合),推荐密码Gl2026@Dev,设置完成后自动跳转登录。
  1. 情况二:无自动提示(手动修改) :登录后点击右上角用户头像 → 选择Preferences (偏好设置) → 左侧菜单找到Password (密码) 选项;输入当前初始密码,再设置新密码(推荐Gl2026@Dev)并确认,点击 Save changes (保存更改) 即可。
  1. 密码修改完成后,重新登录即可正常使用GitLab(创建项目、添加用户、管理仓库等)。

五、常用操作命令

5.1****容器启停管理

|--------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash # 停止GitLab容器 docker stop gitlab # 启动GitLab容器 docker start gitlab # 重启GitLab容器(修改配置后需执行) docker restart gitlab # 查看容器运行状态 docker ps | grep gitlab |

5.2****配置修改

若需调整访问地址、开启HTTPS等,可修改GitLab配置文件:

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash # 进入GitLab容器 docker exec -it gitlab /bin/bash # 编辑配置文件(vim需提前安装,若未安装可执行 yum install -y vim) vim /etc/gitlab/gitlab.rb # 保存退出后,重新加载配置(修改配置必须执行此命令才生效) gitlab-ctl reconfigure # 退出容器 exit |

六、常见问题排查

6.1****内存不足导致启动失败 / 卡顿

  1. 检查VM内存使用:free -h
  1. 临时调整GitLab内存限制(进入容器后执行):

    复制代码
    sed -i 's/unicorn[\[:space:\]]*[\{]/&\n  worker_processes 2;\n  timeout 60;\n  memory_min "1024M";\n  memory_max "2048M";/g' /etc/gitlab/gitlab.rb
    gitlab-ctl reconfigure
  1. 长期解决方案:升级VM内存至4GB及以上。

6.2****端口被占用

  1. 查看端口占用情况(以80端口为例):netstat -tulpn | grep 80
  1. 解决方案:停止占用端口的服务,或修改GitLab容器端口映射(如将80改为8080,启动命令中调整为 --publish 8080:80)。

6.3****登录后无密码修改提示

  1. 优先通过手动方式修改:按4.2步骤中的"情况二"操作,从偏好设置中手动更新密码。
  1. 若手动修改入口不可见,可通过命令行强制重置密码(推荐密码:Gl2026@Dev,合规且好记,可直接复制执行):

    复制代码
    # 进入GitLab容器
    docker exec -it gitlab /bin/bash
    # 执行密码重置命令(推荐密码:Gl2026@Dev,避开系统关键词,符合严格验证规则)
    gitlab-rails runner "user = User.find_by_username('root'); user.password = 'Gl2026@Dev'; user.password_confirmation = 'Gl2026@Dev'; user.save!"
    # 退出容器并重启服务,使密码生效
    exit
    docker restart gitlab
  2. 说明:GitLab 18.x版本新增密码合规检测,需避开"GitLab、root、admin"等系统关键词及常用组合。新密码Gl2026@Dev拆分关键词、结合技术场景,既合规又易记;自定义密码可参考:拆分关键词+年份/数字+特殊字符(如Gt2026#Lab、Dev2026&Gl)。

6.4****浏览器无法访问 GitLab

  1. 检查容器是否正常运行:docker ps | grep gitlab(若未运行,执行 docker start gitlab)
  1. 检查防火墙是否拦截端口:关闭防火墙(临时测试)systemctl stop firewalld,若能访问,需配置防火墙规则开放80、2222端口。
  1. 确认VM IP是否正确:确保访问地址为192.168.5.130(而非docker0或virbr0网卡IP)。

七、注意事项

  • 数据安全:务必通过数据卷持久化数据,删除容器时避免误删数据卷(删除容器命令 docker rm gitlab,不会删除数据卷)。
  • 版本更新:GitLab容器更新需先备份数据卷,再重新拉取最新镜像启动(避免数据丢失),更新后无需重新配置核心参数(数据卷已保留)。
  • 网络环境:若VM IP为动态获取,重启后IP可能变化,需重新修改GitLab配置文件中的 external_url并加载配置。
  • 密码规则:GitLab 18.x版本密码验证更严格,需避开GitLab、root、admin等系统关键词及常用组合,仅满足强密码格式(大小写、数字、特殊字符)可能验证失败。

|(注:文档内容通过VM实操)

成功截图: 访问:192.168.5.130

相关推荐
WLDLSW2 小时前
MobaXterm如何设置鼠标中键或者右键粘贴
linux·服务器
迷途之人不知返2 小时前
Linux指令及理论(3)
linux
STCNXPARM2 小时前
Linux-ARM-GIC interrupt子系统深度剖析
linux·运维·arm开发·gic·中断子系统
bloglin999992 小时前
hub.docker.com和docker.com
java·docker·eureka
Byte不洛2 小时前
深入理解 Linux 信号机制:从 task_struct 到信号递达全过程
linux·信号机制
rustfs2 小时前
使用 podman 容器化安装 RustFS 详细指南
docker·rust·podman
优选资源分享2 小时前
开源免费 Linux 服务器管理工具 Server Box v1.0.1297
linux·服务器·开源
颢珂智库Haokir Insights2 小时前
宝塔面板安装教程(新手完整指南)
linux·运维·服务器
晨非辰3 小时前
Linux文件操作实战:压缩/传输/计算10分钟速成,掌握核心命令组合与Shell内核交互秘籍
linux·运维·服务器·c++·人工智能·python·交互