其他安裝 Docker 的方式
您可以使用幾種方式,將 Docker 與 開發容器 擴充功能搭配使用
- 本機安裝的 Docker。
- 安裝在另一部機器或遠端環境中的 Docker。
- 您只需要在遠端主機上安裝 Docker,而不需要在本機安裝 Docker。
- 其他與 Docker 相容的 CLI,安裝在本機或遠端環境中。
- 例如,Rancher Desktop 是另一種安裝 Docker 的方式,可在 Windows、macOS 和 Linux 上提供容器管理和 Kubernetes。
- 開發容器與 CLI 互動;它不對容器引擎的運作方式做任何假設,也不直接與容器引擎或守護程序互動。
- 請注意,其他與 Docker 相容的 CLI 並未獲得官方支援。
繼續閱讀以瞭解您可以安裝和使用 Docker 或與 Docker 相容的 CLI 的其他方式。
Windows:適用於 Linux 的 Windows 子系統 (WSL)
在 Windows 上,您可以透過 WSL 擴充功能,使用安裝在 WSL 中的 Docker。您可以參考 Docker 文件,瞭解如何在 Linux 上安裝 Docker,以及每個發行版本的特定資訊。
一個問題是 dockerd
守護程序不會自動啟動,因為缺少 systemd
或任何其他系統守護程序。在 WSL 0.67.6 及更高版本 (wsl --version
) 中,您可以啟用對 systemd
的支援。對於舊版本的 WSL,您可以使用 Distrod 來建立或更新具有 systemd
的現有 WSL 發行版。
macOS:Colima
Colima 在 macOS 上提供容器執行階段。建議使用 Colima v0.2.2 或更高版本,以便 VS Code 可以正確地看到透過 Colima 執行的容器。
Colima 會自動設定 colima
Docker 內容,並將其設為作用中內容。您可能還需要在執行 colima start
之前安裝 docker
和 docker-compose
CLI,才能使此設定正常運作。
注意:Remote - SSH 不支援 Colima 使用的 Alpine Linux。
Linux
如果您在本機電腦上使用 Linux,或已經有具有 SSH 存取權的遠端 Linux 機器,您可以參考 Docker 文件,瞭解如何在 Linux 上安裝 Docker,以及每個發行版本的特定資訊。
Cloud-Init VM
您可以將 Remote - SSH 擴充功能與開發容器搭配使用。這使您可以在遠端機器 (例如 Linux VM) 上安裝 Docker。
您可以使用 Cloud-Init 檔案 (這是產業標準) 在 VM 上自動安裝 Docker。例如,您可以使用 Azure CLI 建立 Azure VM,並將其設定為在建立期間使用 cloud-init.txt
。
cloud-init.txt
檔案
#cloud-config
apt:
sources:
docker.list:
source: deb [arch=amd64] https://download.docker.com/linux/ubuntu $RELEASE stable
keyid: 9DC858229FC7DD38854AE2D88D81803C0EBFCD88
packages:
- docker-ce
- docker-ce-cli
groups:
- docker
system_info:
default_user:
groups: [docker]
以下是 Azure CLI 命令的範例。請務必將 <location-here>
更新為靠近您的資料中心 (例如,eastus
、westeurope
)
az login
az group create --name dev-server --location <location-here>
az vm create \
--resource-group dev-server \
--name dev-server \
--image Canonical:0001-com-ubuntu-server-impish:21_10-gen2:latest \
--custom-data cloud-init.txt \
--generate-ssh-keys
您可以在在遠端 Docker 主機上開發文件中,瞭解更多關於將 Remote - SSH 與開發容器搭配使用的資訊。
Podman
Podman 1.9+ 大致上與 Docker 的 CLI 命令相容,因此如果您將 Docker 路徑 設定 (透過設定編輯器中的 開發 > 容器:Docker 路徑) 更新為 Linux 上的 podman
,則可以運作。
但是,由於 Podman 的限制,某些技巧 (例如 Docker-from-Docker 無法運作)。這會影響 開發容器:嘗試開發容器範例... 和 開發容器:在容器磁碟區中複製存放庫... 命令。
為了解決無根 Podman 的問題 (例如,不遵循非 root "remoteUser"
並嘗試在 root
中安裝伺服器),您可以設定以下內容
"runArgs": [
"--userns=keep-id"
],
"containerEnv": {
"HOME": "/home/node"
}
當設定 "HOME"
時可以使用 "remoteUser"
,因為開發容器會優先使用該設定,而不是在 /etc/passwd
中找到的 home 資料夾。
Podman 也透過 Podman Compose 擁有自己的 Compose Spec 實作。
其他容器引擎
您可以透過 vscode-remote-release 存放庫 開啟或檢閱對其他容器引擎支援的請求。已經有幾個您可以探索的功能請求