使用Docker Desktop部署GitLab

发布于:2025-02-22 ⋅ 阅读:(14) ⋅ 点赞:(0)

1. 环境准备

  • 确保Windows 10/11系统支持虚拟化技术(需在BIOS中开启Intel VT-x/AMD-V)
  • 内存建议≥8GB,存储空间≥100GB

2. 安装Docker Desktop

  • 访问Docker官网下载安装包
  • 安装时勾选"Use WSL 2 instead of Hyper-V"(推荐)
  • 安装完成后启动Docker,在设置中确保使用Linux容器模式

3. 下载Gitlab镜像

3.1 配置加速

国内从Docker Hub拉取镜像常因网络问题受阻,可配置国内云服务商提供的镜像加速器提升下载速度。

3.1.1 国内加速地址

https://dockerproxy.com 第三方代理
http://hub-mirror.c.163.com 网易云镜像
https://docker.mirrors.sjtug.sjtu.edu.cn 上海交大镜像
https://docker.m.daocloud.io DaoCloud镜像
https://docker.nju.edu.cn 南京大学镜像
https://mirror.baidubce.com 百度云镜像(需登录控制台)
https://ccr.ccs.tencentyun.com 腾讯云镜像(需登录控制台)
https://<your_code>.mirror.aliyuncs.com 阿里云镜像站(需登录 控制台

3.1.2 配置JSON

系统右下角托盘图标内右键菜单选择 Settings,打开配置窗口后左侧导航菜单选择 Docker Daemon。编辑窗口内的JSON串,填写下方加速器地址:

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },

  "experimental": false,

  /* 镜像加速器列表 */
  "registry-mirrors": [
    "https://dockerproxy.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.sjtug.sjtu.edu.cn",
    "https://docker.m.daocloud.io",
    "https://docker.nju.edu.cn"
  ]
}

docker info 命令确认是否设置成功

3.2 拉取镜像

搜索框搜索"Gitlab”,点击Pull 拉取镜像 (可能会因为网络问题搜不到,可以直接用命令拉取)

Apple Silicon 选择: yrzr/gitlab-ce-arm64v8

拉取成功:

3.3 GitLab镜像的区别和用途

alpinelinux/gitlab 基于Alpine Linux的GitLab镜像,Alpine Linux是一个轻量级的Linux发行版,通常用于需要最小化镜像大小的场景。 适用于需要轻量级GitLab实例的环境。
okteto/gitlab Okteto是一个用于开发Kubernetes应用的平台,这个镜像可能是为了在Kubernetes环境中部署GitLab而优化的。适用于需要在Kubernetes上部署GitLab的开发人员。
vulhub/gitlab Vulhub是一个提供漏洞环境的开源项目,这个镜像可能包含了一些已知漏洞的GitLab版本,用于安全研究或渗透测试。适用于安全研究人员或渗透测试人员。
gitlab/gitlab-runner GitLab Runner是一个开源项目,用于运行GitLab CI/CD管道中的作业。 适用于需要执行CI/CD任务的环境。
gitlab/gitlab-ce GitLab的社区版,是免费的开源版本,包含了GitLab的核心功能。适用于大多数需要GitLab功能的用户。
gitlab/gitlab-runner-helper 这个镜像可能是为了辅助GitLab Runner的运行而设计的,提供了一些额外的工具或脚本。 适用于需要GitLab Runner高级功能的用户。
mcp/gitlab 这个镜像可能由某个特定的组织或项目维护,用于特定的部署或配置需求。适用于需要特定配置或定制的GitLab实例。
gitlab/gitlab-ee GitLab的企业版,包含了额外的企业级功能,如高级安全、合规性和支持。适用于需要高级功能和企业级支持的大型组织。

3.2 命令行拉取

docker pull gitlab/gitlab-ce:17.9.0-ce.0

4. 容器配置

4.1 Optional settings(可选设置)

  • Container name(容器名称):可以填写一个有意义的名称,以便于识别和管理。如果不填写,Docker 会自动生成一个随机名称。

4.2 Ports(端口)

  • Host port(主机端口):这些端口用于将容器内部的服务映射到主机上,使得可以从主机访问容器内部的服务。

    • 22/tcp:通常用于 SSH 访问。如果你不需要通过 SSH 访问 GitLab,可以不映射这个端口,或者映射到一个不常用的端口上。

    • 443/tcp:通常用于 HTTPS 访问。建议映射到主机的 443 端口,这样可以通过 https://localhost 访问 GitLab。

    • 80/tcp:通常用于 HTTP 访问。建议映射到主机的 80 端口,这样可以通过 http://localhost 访问 GitLab。

4.3 Volumes(卷)

  • Host path(主机路径):指定主机上的一个目录,用于存储 GitLab 的数据和配置。

  • Container path:指定容器内部的路径,通常是 /var/opt/gitlab,这是 GitLab 默认的数据和配置存储路径。

4.4 Environment variables(环境变量)

  • Variable(变量):可以设置一些环境变量来配置 GitLab 的行为,例如:

    • GITLAB_OMNIBUS_CONFIG:用于设置 GitLab 的配置,可以是一个包含配置的 YAML 字符串。

    • GITLAB_ROOT_PASSWORD:设置 GitLab 的初始管理员密码。

4.5 示例配置

假设你希望将 GitLab 的数据存储在主机的 C:\gitlab-data 目录下,并且希望使用默认的 80 和 443 端口访问 GitLab,配置如下:(输入0自动配置端口)

  • Container namemy-gitlab

  • Ports

    • Host port80Container port80

    • Host port443Container port443

  • Volumes

    • Host pathC:\gitlab-dataContainer path/var/opt/gitlab

  • Environment variables

    • VariableGITLAB_ROOT_PASSWORDValueyour_password

填写完毕后,点击 Run 按钮启动容器。等待初始化完成即可使用。