コンテナー ランタイムの準備

前のステップで wslc が動作することを確認しました。このステップでは、本ハンズオンで使うランタイムを確定します。

本ハンズオンの方針

ステップ 4「Visual Studio Code のインストール」 以降は、すべて wslc ルートで進みます。 追加のインストールは必要ありません。

wslc を主ルートとする理由は次のとおりです。

観点 wslc の利点
導入 wsl --update のみ。Docker Engine のインストールが不要
セキュリティ セッション操作がユーザー権限の wslcsession.exe で実行され、セッション間が分離される
ネットワーク Consommé モデルによりトラフィックがユーザーとして送信されるため、VPN やファイアウォールとの互換性が高い
VS Code 連携 wslc を Dev Containers の既定ドライバーとして使用できる (公式サポート)

したがって、このステップで新たに実行するコマンドはありません。次のステップ (Git のインストール) に進んでください。


補足 — compose が必要な場合 (代替ルート)

以下は、compose.yaml を使ったマルチサービス構成 (例: API + データベース + フロントエンド) が必要な方のみお読みください。単一コンテナーの開発や、後続のローカル AI タスクだけが目的であれば、この節は読み飛ばして構いません。

なぜ代替ルートが必要か

現時点の wslc には compose サブコマンドがありません。 公式ブログでは、これが最も要望の多い機能であり、次のイテレーションの重点項目であると述べられています。

“Our top feature request for WSLc is adding compose support, and this will be our focus for our next iterations. Our aim is for wsl compose up to work with your existing compose.yaml files, unchanged.”

公式は、既存の compose.yaml を変更せずに使えるようにすることを目標として表明しています (提供時期は未定)。それまでの間、マルチサービス構成には Docker Engine を併用します。wslc と Docker Engine は共存できるため、必要になった時点で以下を追加実行してください。

Docker Engine のインストール

WSL の Ubuntu 内にインストールします。本家のインストール手順はこちらです。

注意: sudo コマンドの初回使用時には、「ユーザー情報の設定」で指定したパスワードを求められる場合があります。Ubuntu 26.04 では、パスワードの入力欄は [sudo: authenticate] Password: と表示されます。

  1. インストール用スクリプトをダウンロード

    curl -fsSL https://get.docker.com -o get-docker.sh
    
  2. スクリプトの内容を確認

    実行前に内容を確認することを強くお勧めします。--dry-run オプションで、実際にインストールせずに手順だけを確認できます。

    sudo sh ./get-docker.sh --dry-run
    

    --dry-run でも、WSL 環境の警告と 20 秒の待機が表示されます。

    操作画面イメージ

  3. スクリプトを実行

    sudo sh ./get-docker.sh
    

    注意: このスクリプトは WSL 環境を検出すると「Docker Desktop の使用を推奨する」旨の警告を表示し、20 秒待機します。本ハンズオンでは意図的に Docker Engine を直接導入するため、そのまま待機して問題ありません。

    操作画面イメージ

  4. 現在のユーザーを docker グループに追加

    sudo usermod -aG docker $USER
    

    変更を反映するには、PowerShell から次のコマンドで WSL を終了し、Ubuntu を開き直してください。

    wsl --terminate Ubuntu-26.04
    

Docker Compose について

現在の Docker Engine には Compose V2 が docker-compose-plugin として同梱されています。 上記のインストール スクリプトを実行していれば、追加のインストールは不要です。以下のコマンドで確認できます。

docker compose version

INFO: 以前は docker-compose バイナリを個別にダウンロードする手順が必要でしたが、現在は Docker Engine のインストールに含まれるため不要です。コマンドもハイフン付きの docker-compose ではなく、サブコマンド形式の docker compose が推奨されます。

Docker の自動起動

Ubuntu 26.04 の WSL イメージでは systemd が既定で有効になっており、インストール スクリプトの最後で docker.service が有効化・起動されます。そのため、自動起動のための追加設定は不要です。

注意: 以前の版にあった「~/.bashrc に sudo /etc/init.d/docker start を追記する」設定は行わないでください。シェルを開くたびに (VS Code のターミナルを開くたびにも) sudo のパスワードを求められるようになります。

起動確認

systemctl status docker

q を入力すると確認のプロセスが終了します。

下記のように出力されれば成功です。
● docker.service - Docker Application Container Engine
      Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
      Active: active (running)
TriggeredBy: ● docker.socket
        Docs: https://docs.docker.com
    Main PID: 1707 (dockerd)

dockerd[1707]: time="..." level=info msg="Loading containers: done."
dockerd[1707]: time="..." level=info msg="Daemon has completed initialization"
dockerd[1707]: time="..." level=info msg="API listen on /run/docker.sock"
systemd[1]: Started Docker Application Container Engine.
操作画面イメージ

注意: PID や時刻などの表示内容は環境によって異なります。

ルートの使い分け

Docker Engine を導入した後も、単一コンテナーの操作は wslc のまま進めて構いません。両者は独立して動作します。

やりたいこと 使うコマンド
単一コンテナーの実行・Dev Containers・ローカル AI を利用するアプリ wslc ... (PowerShell から)
compose.yaml によるマルチサービス起動 docker compose ... (WSL ターミナルから)