🚀 在 VS Code 中取得

其他安裝 Docker 的方式

您可以使用幾種方式,將 Docker 與 開發容器 擴充功能搭配使用

  • 本機安裝的 Docker。
  • 安裝在另一部機器或遠端環境中的 Docker。
    • 您只需要在遠端主機上安裝 Docker,而不需要在本機安裝 Docker。
  • 其他與 Docker 相容的 CLI,安裝在本機或遠端環境中。
    • 例如,Rancher Desktop 是另一種安裝 Docker 的方式,可在 Windows、macOS 和 Linux 上提供容器管理和 Kubernetes。
      • 由於 Rancher Desktop 透過 Moby 支援 Docker CLI,因此您可以將開發容器擴充功能與其搭配使用。您可以參考 Rancher Desktop 的指南,瞭解如何開始使用。
    • 開發容器與 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 之前安裝 dockerdocker-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> 更新為靠近您的資料中心 (例如,eastuswesteurope)

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,則可以運作。

Docker Path setting

但是,由於 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 存放庫 開啟或檢閱對其他容器引擎支援的請求。已經有幾個您可以探索的功能請求