docker版Gitlab维护手册
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.升级小版本(热升级)
- 宿主机 docker pull gitlab/gitlab-ce:【新版本号】
- docker stop gitlab && docker rm gitlab
- 用 同一串 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 冲突。
更多推荐


所有评论(0)