1. 容器启停与生命周期

场景

CLI 命令

关键截图/提示

启动

docker run -itd --hostname gitlab.yyh.com -p 9088:80 -p 9022:22 -v /data/gitlab/etc:/etc/gitlab -v /data/gitlab/log:/var/log/gitlab -v /data/gitlab/opt:/var/opt/gitlab --restart always --privileged=true --name gitlab gitlab/gitlab-ce:17.5.1-ce.0

执行后 docker ps 能看到 STATUS Up 即成功。

优雅停止

docker stop gitlab

浏览器出现 502 即停止成功。

再次启动

docker start gitlab

等待 30 s 左右,首页可访问。

重启

docker restart gitlab

日志滚动到 GitLab is ready 即可。

查看实时日志

docker logs -f gitlab

关键字 Running… 代表内部 reconfigure 完成。

进入容器调试

docker exec -it gitlab bash

容器内 gitlab-ctl status 看 9 个服务是否全为 run

2.用户管理(新建 / 编辑 / 删除)

操作

步骤

新建用户

Admin ▶ Overview ▶ Users ▶ “New user” 按钮(青色,右上角)→ 填用户名/邮箱/权限级别 → “Create user”极狐GitLab 管理员 - GitLab - GitLab 文档中心

修改密码

用户列表 ▶ 右侧 “编辑” ▶ Password 区域输入新口令 → Save。

删用户

用户行末 “用户管理” 下拉 → “Delete user”“Delete user and contributions”

批量导入

Admin ▶ Users ▶ “Import users” → 上传 CSV(username,email,password…)。

3.权限模型速查表

角色

代码仓库

问题

CI/CD

容器镜像库

管理后台

Guest (访客)

只读公开文件

Reporter (报告者)

拉取代码

✔✔

查看作业

拉取镜像

Developer (开发者)

推送/创建 MR

✔✔✔

触发流水线

推送镜像

Maintainer (维护者)

保护分支设置

✔✔✔✔

编辑 CI 变量

删除镜像

Owner/Admin

所有权限

✔✔✔✔✔

全站设置

全站策略

注: 项目级授权在 Project ▶ Settings ▶ Members 里添加;组级授权在 Group ▶ Members 里添加,权限可继承。

4.项目/组级权限细颗粒配置

  • 1.保护分支(仅 Maintainer 可合并)

Project ▶ Settings ▶ Repository ▶ “Protected branches” → 填写分支名 → 选 “Maintainers”Allowed to merge极狐GitLab 管理员 - GitLab - GitLab 文档中心

  • 2.CI 变量保密

Project ▶ Settings ▶ CI/CD ▶ Variables“Add variable”,勾选 “Protected” 仅对保护分支生效。

  • 3.镜像库清理策略

Project ▶ “Packages and registries”“Container Registry”“Cleanup policy” 可设定 “保留最近 5 个 tag” 等。GitLab项目容器镜像仓库管理指南-CSDN博客

5.升级小版本(热升级)

  1. 宿主机 docker pull gitlab/gitlab-ce:新版本号
  2. docker stop gitlab && docker rm gitlab
  3. 同一串 docker run(仅改 tag)重新创建容器 → 首次启动自动跑 gitlab-ctl reconfigure 完成迁移。GitLab Docker 容器升级与降级指南-CSDN博客

docker run -itd --hostname gitlab.yyh.com -p 9088:80 -p 9022:22 -v /data/gitlab/etc:/etc/gitlab -v /data/gitlab/log:/var/log/gitlab -v /data/gitlab/opt:/var/opt/gitlab --restart always --privileged=true --name gitlab gitlab/gitlab-ce:版本号

    4.docker logs -f gitlab 出现 “GitLab is ready” 即可访问。

6.一键排障 cheat-sheet

现象

快速定位命令 / 页面

502 错误 > 30 s

docker logs -f gitlab

grep “timeout”;或 gitlab-ctl status` 看 unicorn/sidekiq 是否未跑起。

磁盘暴涨

Admin ▶ Monitoring ▶ “Usage trends” → 查看 Registry / Artifacts 占比;项目内 “Snippets” 也可能占空间。

用户无法拉取镜像

检查 Admin ▶ Settings ▶ CI/CD ▶ Container Registry 是否被全局禁用;确认用户在该项目 ≥ Reporter。

使用小贴士

  • 任何修改 gitlab.rb 后,务必 docker exec -it gitlab gitlab-ctl reconfigure 使之生效。
  • 建议把 GITLAB_HOME 指向独立磁盘,并定期 docker exec … gitlab-backup create + tar 打包 config 与 backup。
  • 生产环境请给宿主机开放 80/443/22 之外,再映射 8022→22 用于 SSH 拉代码,避免和宿主机 SSH 冲突。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐