Docker をインストールする別の方法
Dev Containers 拡張機能と Docker を連携させる方法はいくつかあります
- ローカルにDockerがインストールされている場合。
- 別のマシンまたはリモート環境に Docker をインストールする
- Docker はローカルではなく、リモートホストにのみインストールすれば大丈夫です。
- ローカルまたはリモート環境に他の Docker 準拠 CLI をインストールする
- 例えば、Rancher Desktop は、Windows、macOS、Linux でコンテナ管理と Kubernetes を提供する、Docker をインストールするもう一つの方法です。
- Dev Containers は CLI と対話します。コンテナエンジンの動作方法について仮定せず、コンテナエンジンやデーモンと直接対話することはありません。
- なお、その他の Docker 準拠 CLI は正式にサポートされていません。
Docker または Docker 準拠 CLI をインストールして使用する別の方法について、読み進めてください。
Windows: Windows Subsystem for Linux (WSL)
Windows では、WSL 拡張機能を通じて WSL にインストールされた Docker を使用できます。Linux への Docker インストールについては、Docker ドキュメントを参照でき、ディストリビューションごとの具体的な情報も確認できます。
1つの問題は、`systemd`や他のシステムデーモンがないため、`dockerd`デーモンが自動的に起動しないことです。WSL バージョン 0.67.6 以降 (`wsl --version`) では、`systemd`のサポートを有効にできます。古い WSL バージョンでは、Distrod を使用して、既存の WSL ディストリビューションを `systemd` で作成または更新できます。
macOS: Colima
Colima は macOS でコンテナランタイムを提供します。VS Code が Colima を通じて実行中のコンテナを適切に認識できるように、Colima v0.2.2 以降を使用することをお勧めします。
Colima は自動的に `colima` Docker コンテキストを設定し、それをアクティブなコンテキストにします。この設定が正しく機能するように、`colima start` を実行する前に `docker` および `docker-compose` CLI もインストールすることをお勧めします。
注意: Colima は Alpine Linux を使用しており、これは Remote - SSH でサポートされていません。
Podman
Podman バージョン 5 以降は、Docker の CLI コマンドとほぼ互換性があります。Podman を使用するには、Linux、Windows、または macOS で Docker Path (dev.containers.dockerPath) 設定を `podman` に更新してください。
Podman にも `podman compose` コマンドがありますが、これは Docker Compose または Podman Compose のいずれかの compose プロバイダーを必要とします。
Linux
ローカルマシンで Linux を使用している場合、または SSH アクセスを持つリモートの Linux マシンを既に持っている場合は、Linux への Docker のインストールについてDocker ドキュメントを参照でき、ディストリビューションごとの具体的な情報も確認できます。
Cloud-Init VM
Remote - SSH 拡張機能を Dev Containers と併用できます。これにより、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 コマンドの例を以下に示します。`
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
Remote - SSH と Dev Containers の連携については、リモート Docker ホストでの開発ドキュメントで詳しく学ぶことができます。
他のコンテナエンジン
vscode-remote-release リポジトリを通じて、他のコンテナエンジンのサポートリクエストをオープンしたり、確認したりできます。すでにいくつか機能リクエストがありますので、ぜひご確認ください。