使用Docker Desktop部署GitLab

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

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 按钮启动容器。等待初始化完成即可使用。

### 使用 Docker Desktop 配置 GitLab #### 创建必要的数据卷 为了持久化存储 Redis 和 PostgreSQL 数据,在启动容器之前需先创建两个 Docker 卷。以下是命令示例: ```bash docker volume create git_data docker volume create git_redis docker volume create git_postgresql ``` 这些卷分别用于保存 GitLab 的主要数据、Redis 缓存以及 PostgreSQL 数据库的数据[^2]。 --- #### 启动 GitLab 容器 通过 `docker run` 命令来运行官方的 GitLab 镜像,并挂载上述创建好的卷到指定路径。以下是一个完整的命令模板: ```bash docker run --detach \ --hostname gitlab.example.com \ --publish 80:80 --publish 443:443 --publish 22:22 \ --name gitlab \ --restart always \ --volume /srv/gitlab/config:/etc/gitlab \ --volume /srv/gitlab/logs:/var/log/gitlab \ --volume /srv/gitlab/data:/var/opt/gitlab \ --env GITLAB_OMNIBUS_CONFIG="external_url 'http://gitlab.example.com';" \ gitlab/gitlab-ce:latest ``` 此命令中的参数解释如下: - `--detach`: 让容器以后台模式运行。 - `--hostname`: 设置主机名,这里假设为 `gitlab.example.com`。 - `--publish`: 将宿主机端口映射至容器内的服务端口 (HTTP, HTTPS, SSH)。 - `--name`: 给容器命名以便于管理。 - `--restart always`: 当 Docker 主机重启时自动恢复该容器。 - `--volume`: 挂载本地目录 `/srv/gitlab/*` 到容器内部对应位置以实现数据持久化。 - `GITLAB_OMNIBUS_CONFIG`: 自定义配置变量,例如外部 URL 地址[^3]。 --- #### 初始化与访问 首次启动完成后,GitLab 可能需要几分钟时间完成初始化过程。可以通过浏览器访问设定的地址(如 http://localhost 或者实际绑定域名),默认管理员账户密码可通过日志查看: ```bash docker logs gitlab | grep "Password:" ``` 登录成功后建议立即更改初始密码以保障安全性[^1]。 --- #### 进阶配置选项 如果希望进一步调整 GitLab 行为,比如启用 SMTP 发送邮件通知等功能,则可以在环境变量部分追加更多设置项。例如: ```bash --env GITLAB_OMNIBUS_CONFIG="\ external_url 'http://gitlab.example.com' \n\ gitlab_rails['smtp_enable'] = true \n\ gitlab_rails['smtp_address'] = \"smtp.yourdomain.com\" \n\ gitlab_rails['smtp_port'] = 587" ``` 以上脚本展示了如何开启 SMTP 支持并指定了服务器地址和端口号。 --- #### 总结说明 GitLab 是一款强大的开源工具,支持团队协作开发流程管理和代码托管需求[^4]。借助 Docker 技术简化了其部署复杂度,使得即使是初学者也能快速搭建起属于自己的私有 Git 平台。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值