news 2026/4/3 6:38:50

Docker 离线安装 GitLab 完整步骤

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Docker 离线安装 GitLab 完整步骤

你需要实现 Docker 环境下 GitLab 的离线部署,核心思路是先在有网络环境准备镜像和必要文件,再拷贝到离线机器进行部署,以下是分步详细操作:

一、有网络机器:准备 GitLab 镜像(关键前置步骤)

离线安装的核心是先获取 GitLab 镜像包,因为离线机器无法直接从 Docker Hub 拉取。

1. 拉取 GitLab 官方镜像

推荐使用社区版(CE),指定稳定版本(避免最新版兼容性问题),命令如下:

# 拉取 GitLab CE 稳定版(示例:16.8.1,可替换为其他稳定版本)dockerpull gitlab/gitlab-ce:16.8.1-ce.0

2. 导出镜像为 tar 包(用于离线传输)

将拉取的镜像导出为本地 tar 文件,方便拷贝到离线机器,命令如下:

# 导出镜像:格式 docker save -o [本地输出tar包路径] [镜像名:标签]dockersave -o /root/gitlab-ce-16.8.1.tar gitlab/gitlab-ce:16.8.1-ce.0

执行后,在/root目录下会生成gitlab-ce-16.8.1.tar镜像包,后续将该文件拷贝到离线机器。

二、离线机器:部署前准备

1. 拷贝镜像包到离线机器

通过 U 盘、移动硬盘、内网传输(若有内网互通)等方式,将gitlab-ce-16.8.1.tar拷贝到离线机器的任意目录(示例:/root目录)。

2. 导入 GitLab 镜像

在离线机器上,使用docker load命令导入镜像包,命令如下:

# 导入镜像:格式 docker load -i [本地tar包路径]dockerload -i /root/gitlab-ce-16.8.1.tar

导入完成后,可通过docker images命令验证,能看到gitlab/gitlab-ce:16.8.1-ce.0镜像即表示导入成功。

3. 创建本地挂载目录(持久化数据/配置/日志)

GitLab 的配置、数据、日志需要持久化到本地(避免容器删除后数据丢失),创建三个专属目录,命令如下:

# 创建根目录mkdir-p /data/gitlab# 分别创建配置、数据、日志目录mkdir-p /data/gitlab/config# 配置文件目录mkdir-p /data/gitlab/data# 数据存储目录mkdir-p /data/gitlab/logs# 日志文件目录

同时,赋予目录足够权限(避免容器读写失败):

chmod-R777/data/gitlab

三、离线机器:启动 GitLab 容器

使用docker run命令启动容器,核心配置包含端口映射目录挂载访问地址配置,完整命令如下:

dockerrun -d\--name gitlab\--restart always\--privileged=true\-p80:80\-p443:443\-p2222:22\-v /data/gitlab/config:/etc/gitlab\-v /data/gitlab/data:/var/opt/gitlab\-v /data/gitlab/logs:/var/log/gitlab\-eGITLAB_OMNIBUS_CONFIG="external_url 'http://192.168.1.100'; gitlab_rails['gitlab_shell_ssh_port'] = 2222;"\gitlab/gitlab-ce:16.8.1-ce.0

命令参数说明(关键)

  1. --name gitlab:指定容器名称为 gitlab,方便后续管理
  2. --restart always:容器异常退出或服务器重启后自动启动
  3. --privileged=true:赋予容器特权,避免权限不足问题
  4. 端口映射:
    • 80:80:主机 80 端口映射容器 80 端口(HTTP 访问端口)
    • 443:443:主机 443 端口映射容器 443 端口(HTTPS 访问端口,若不需要可删除)
    • 2222:22:主机 2222 端口映射容器 22 端口(SSH 克隆端口,避免与主机 22 端口冲突)
  5. 目录挂载:对应前面创建的三个本地目录,实现数据持久化
  6. GITLAB_OMNIBUS_CONFIG:核心配置
    • external_url 'http://192.168.1.100':指定 GitLab 访问地址(替换为你的离线机器内网 IP)
    • gitlab_rails['gitlab_shell_ssh_port'] = 2222:指定 SSH 克隆端口(与主机映射的 2222 端口一致)

四、离线机器:GitLab 初始化与访问

1. 等待容器初始化完成

GitLab 启动后需要一定时间初始化(约 5-10 分钟,视机器配置而定),可通过以下命令查看启动日志,确认是否正常:

# 实时查看 GitLab 容器日志dockerlogs -f gitlab

当日志中出现gitlab Reconfigured!时,表示初始化完成,可停止日志查看(Ctrl+C)。

2. 获取 root 初始密码

GitLab 初始化完成后,root 初始密码存放在容器内的指定文件中,通过以下命令获取:

# 进入容器查看密码文件,或直接读取密码dockerexec-it gitlabcat/etc/gitlab/initial_root_password

执行后,会显示一串随机密码(注意:密码有效期为 24 小时,需及时登录修改)。

3. 访问 GitLab 并修改密码

  1. 打开浏览器,输入之前配置的external_url(示例:http://192.168.1.100),即可进入 GitLab 登录页面
  2. 使用用户名root和上述获取的初始密码登录
  3. 登录后,系统会提示修改初始密码,按照提示设置新密码即可完成部署

五、后续维护常用命令

# 重启 GitLab 容器dockerrestart gitlab# 停止 GitLab 容器dockerstop gitlab# 查看 GitLab 容器状态dockerps|grepgitlab# 进入 GitLab 容器内部(用于修改配置等操作)dockerexec-it gitlab /bin/bash

总结

  1. 离线安装核心:有网机器拉取+导出镜像,离线机器导入+部署
  2. 关键配置:本地目录挂载(持久化数据)、端口映射(避免冲突)、external_url配置(访问地址)
  3. 初始化要点:等待gitlab Reconfigured!日志、通过initial_root_password获取初始密码、及时修改 root 密码
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/30 22:23:05

【人工智能】给Cursor分析数据库问题:「精准传信息」的完整方法

你核心的需求是:把数据库相关的信息清晰、完整、精准的传递给Cursor,让它能一次性分析出你的数据库问题(SQL报错/慢查询/性能差/索引失效/死锁/数据异常等),不会反复追问你补充信息,这也是我每天处理数据库问题的核心原则。 ✅ 核心前提:传递信息的「黄金原则」 Cursor…

作者头像 李华
网站建设 2026/3/15 14:50:01

PyTorch分布式数据并行(DDP)实战:基于CUDA-v2.8多卡训练

PyTorch分布式数据并行(DDP)实战:基于CUDA-v2.8多卡训练 在现代深度学习系统中,模型规模的膨胀已经让单GPU训练变得举步维艰。从BERT到LLaMA,从ResNet到ViT,参数量动辄上亿甚至千亿,训练周期以…

作者头像 李华
网站建设 2026/4/2 8:12:12

jiyutrainer下载链接失效?试试集成PyTorch-CUDA-v2.8的新平台

jiyutrainer下载链接失效?试试集成PyTorch-CUDA-v2.8的新平台 在AI项目开发中,最让人头疼的往往不是模型设计本身,而是环境配置——尤其是当某个关键依赖突然“404 Not Found”时。不少开发者可能都经历过这样的场景:正准备复现一…

作者头像 李华
网站建设 2026/3/31 19:10:24

HuggingFace镜像网站推荐:结合PyTorch-CUDA-v2.8加速大模型推理

HuggingFace镜像网站推荐:结合PyTorch-CUDA-v2.8加速大模型推理 在如今的大模型时代,谁能更快地跑通第一个 from transformers import AutoModel,谁就更有可能抢占实验先机。然而现实往往骨感:刚配好 Python 环境,发现…

作者头像 李华
网站建设 2026/4/1 22:53:49

Web开发者实战AI Agent:基于Dify实现OpenAI Deep Research智能体

图片来源网络,侵权联系删。 文章目录1. 引言2. Web开发者如何理解 Deep Research?2.1 Deep Research 的核心流程(类比后端业务编排)2.2 Dify 如何支持 Deep Research?3. Deep Research 智能体设计原理(Web视…

作者头像 李华