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)