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 按鈕啟動容器。等待初始化完成即可使用。