尝试以扩展 VS Code 中的代理模式!

安装 Docker 的其他方式

你可以通过以下几种方式将 Docker 与 开发容器 (Dev Containers) 扩展配合使用:

  • 本地安装 Docker。
  • Docker 安装在另一台机器或远程环境中。
    • 你只需在远程主机上安装 Docker,而无需在本地安装 Docker。
  • 其他兼容 Docker 的 CLI,安装在本地或远程环境中。
    • 例如,Rancher Desktop 是另一种安装 Docker 的方式,它在 Windows、macOS 和 Linux 上提供容器管理和 Kubernetes。
      • 由于 Rancher Desktop 通过 Moby 支持 Docker CLI,因此你可以使用 Dev Containers 扩展。你可以在 Rancher Desktop 的指南中了解如何开始使用。
    • Dev Containers 与 CLI 交互;它不对容器引擎的工作方式做出任何假设,也不直接与容器引擎或守护进程交互。
    • 请注意,其他兼容 Docker 的 CLI 不受官方支持。

继续阅读以了解安装和使用 Docker 或兼容 Docker 的 CLI 的其他方式。

Windows:适用于 Linux 的 Windows 子系统 (WSL)

在 Windows 上,你可以通过 WSL 扩展使用安装在 WSL 中的 Docker。你可以参考 Docker 文档了解如何在 Linux 上安装 Docker,其中包含每个发行版的具体信息

一个问题是,由于缺少 systemd 或任何其他系统守护进程,dockerd 守护进程不会自动启动。在 WSL 版本 0.67.6 及更高版本(wsl --version)中,你可以启用对 systemd 的支持。对于较旧的 WSL 版本,你可以使用 Distrod 创建或更新现有的 WSL 发行版,使其支持 systemd

macOS:Colima

Colima 在 macOS 上提供容器运行时。建议使用 Colima v0.2.2 或更高版本,以便 VS Code 可以正确识别通过 Colima 运行的容器。

Colima 会自动设置 colima Docker 上下文并使其成为活动上下文。你可能还希望在运行 colima start 之前安装 dockerdocker-compose CLI,以使此设置正常工作。

注意:Colima 使用 Alpine Linux,它不受远程 - SSH 支持。

Podman

Podman 版本 5+ 大部分与 Docker 的 CLI 命令兼容。要使用 Podman,请在 Linux、Windows 或 macOS 上将 Docker Path (dev.containers.dockerPath) 设置更新为 podman

Docker Path setting

Podman 也有一个 podman compose 命令,但这需要一个 compose 提供程序,可以是 Docker Compose 或 Podman Compose

Linux

如果你的本地机器上使用 Linux,或者已经有一台可以通过 SSH 访问的远程 Linux 机器,你可以参考 Docker 文档了解如何在 Linux 上安装 Docker,其中包含每个发行版的具体信息

Cloud-Init 虚拟机

你可以将 远程 - SSH (Remote - SSH) 扩展与 Dev Containers 结合使用。这使得你可以在远程机器(例如 Linux 虚拟机)上安装 Docker。

你可以使用 Cloud-Init 文件(这是一个行业标准)自动在虚拟机上安装 Docker。例如,你可以通过 Azure CLI 创建一个 Azure 虚拟机,并将其设置为在创建过程中使用 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 主机上开发 文档中了解更多关于将远程 - SSH 与 Dev Containers 结合使用的信息。

其他容器引擎

你可以通过 vscode-remote-release 存储库 打开或查看对其他容器引擎支持的请求。已经有几个你可以探索的功能请求