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 name:
my-gitlab
Ports:
Host port
:80
,Container port
:80
Host port
:443
,Container port
:443
Volumes:
Host path
:C:\gitlab-data
,Container path
:/var/opt/gitlab
Environment variables:
Variable
:GITLAB_ROOT_PASSWORD
,Value
:your_password
填写完毕后,点击 Run 按钮启动容器。等待初始化完成即可使用。