使用Docker Desktop部署GitLab

news/2025/2/22 22:26:15

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


http://www.niftyadmin.cn/n/5862806.html

相关文章

【MCU输入捕获模式】

MCU输入捕获模式 目录 MCU输入捕获模式引言一、基本概念二、实现原理三、应用案例四、优势与局限五、配置与注意事项&#xff08;以STM32为例&#xff09; 引言 输入捕获模式 &#xff08;Input Capture Mode&#xff09;是一种用于捕获外部输入信号变化的微控制器&#xff08…

js中 ES6 新特性详解

ES6&#xff08;ECMAScript 2015&#xff09;是 JavaScript 的一次重大更新&#xff0c;引入了许多新的特性&#xff0c;使 JavaScript 代码更加简洁、可读和高效。以下是 ES6 的主要新特性及其原理 1. let 和 const 关键字 原理解析 1.1 作用域 var 关键字的作用域&#xf…

一篇文章理解常用的前端设计模式

前端设计模式 一.设计模式概览 设计模式是针对软件设计开发过程中反复出现的某类问题的通用解决方案。设计模式更多的是指导思想和方法论&#xff0c;而不是现成的代码&#xff0c;每种设计模式都有每种语言中的具体实现方式。学习设计模式更多是理解各个模式的内在思想和解决…

黑马点评自学03

分布式锁 分布式锁介绍 分布式锁&#xff1a;满足在分布式系统或者集群模式下多进程可见并且进程间获取锁的操作是互斥的锁。 在之前的测试中&#xff0c;当我们进入到集群或分布式的环境中时&#xff0c;一人一单业务在不同集群中可以被同时给用户id加锁&#xff0c;出现了…

娱乐使用,可以生成转账、图片、聊天等对话内容

软件介绍 今天要给大家介绍一款由吾爱大佬 lifeixue 开发的趣味软件。它的玩法超丰富&#xff0c;能够生成各式各样的角色&#xff0c;支持文字聊天、发红包、转账、发语音以及分享图片等多种互动形式&#xff0c;不过在分享前得着重提醒&#xff0c;此软件仅供娱乐&#xff0…

小游戏-记忆卡牌

1、游戏开始4张卡牌&#xff0c;每次过关后新增两张&#xff0c;总共64张卡&#xff0c;可以修改数组EMOJIS&#xff0c;添加表情&#xff0c;增加卡牌数量 2、新建txt文件&#xff0c;将代码粘贴进去&#xff0c;保存后&#xff0c;将txt修改后缀名为html的格式 <!DOCTYPE…

计算机考研之数据结构:P 问题和 NP 问题

在算法的时间复杂度估算中&#xff0c;通常教材和题目中的估算结果包括&#xff1a; O ( 1 ) , O ( log ⁡ n ) , O ( n ) , O ( n ) , O ( n log ⁡ n ) , O ( n 2 ) , O ( n 3 ) , O ( log ⁡ log ⁡ n ) O(1),O(\log{n}),O(\sqrt{n}),O(n),O(n\log{n}),O(n^2),O(n^3),O(\log…

如何在docker中访问宿主机其他服务的接口

1. 使用 host.docker.internal&#xff08;推荐&#xff09; 适用场景&#xff1a;Docker Desktop&#xff08;Windows 和 macOS&#xff09;或 Docker Engine 18.03&#xff08;Linux&#xff09;。 原理&#xff1a;Docker 提供了一个特殊的主机名 host.docker.internal&…