需求:
搭建了一個ads (azure devops server) ci/cd 流水線,會用到windows的代理機,這臺機器需要安裝docker,並可運行linux類型的container
注:關於如何在windows上安裝angent可以直接在ads上查看
問題:
這個機器系統是windows 10,重啓後不登錄docker無法運行起來,所以選擇了在windows server 運行 docker,從而達到無需登錄也可以使用的目的
安裝過程:
1. 新建vm
azure (以國際版爲例)上新建一臺v3類型的vm,支持嵌套虛擬化,即虛擬機裏面可以安裝typer-v
2. 安裝 docker
2.1. 安裝hyper-v
2.2. 安裝支持linux的 docker
需要安裝 Docker Enterprise Edition Preview,這個版本內部包含了一個 LinuxKit 系統用於運行 Docker Linux 容器.
## 卸載 Docker CE.
Uninstall-Package -Name docker -ProviderName DockerMSFTProvider
## 如果你使用運行在Hyper-V上的Linux虛擬機運行Docker容器,啓用嵌套虛擬化
Get-VM WinContainerHost | Set-VMProcessor -ExposeVirtualizationExtensions $true
## 安裝 docker preview
Install-Module DockerProvider
Install-Package Docker -ProviderName DockerProvider -RequiredVersion preview
## 允許 LinuxKit 系統運行linux 容器
[Environment]::SetEnvironmentVariable("LCOW_SUPPORTED", "1", "Machine")
## 重啓docker服務
Restart-Service docker
## ---------------------------------------------------------------------------------
## 測試
docker version
docker run -it --rm ubuntu /bin/bash
## 如果有需要,可以切換回 支持windows容器
[Environment]::SetEnvironmentVariable("LCOW_SUPPORTED", "$null", "Machine")
2.3. 安裝 docker-compose
建議使用如下腳本,一直在用沒有什麼問題
Invoke-WebRequest -UseBasicParsing -Outfile $Env:ProgramFiles\docker\docker-compose.exe https://smartidedl.blob.core.chinacloudapi.cn/docker/compose/releases/download/1.29.2/docker-compose-Windows-x86_64.exe