☁️

Windows 11でWSLを使ってDockerとDocker Composeをセットアップする方法

2024/09/16に公開

Windows 11にWSL(Windows Subsystem for Linux)をインストールし、その上でDockerとDocker Composeを設定する手順を詳細に説明します。Windows上でLinux環境を動かし、Dockerを利用することで、開発の柔軟性と効率を大幅に向上させることができます。

前提条件

  • Windows 11がインストールされていること
  • 管理者権限を持つユーザーであること

1.「Hyper-V」、「Linux 用 Windows サブシステム」、および「仮想マシンプラットフォーム」を有効化

  • PowerShellを管理者として開く: スタートメニューで「PowerShell」と検索し、右クリックから「管理者として実行」を選択します。

  • 機能を有効にするコマンドを実行する:

以下のコマンドをPowerShellに貼り付けて実行します。これにより、必要な機能が有効になります。

# Hyper-Vを有効にする
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

# Linux 用 Windows サブシステムを有効にする
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

# 仮想マシンプラットフォームを有効にする
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

これらのコマンドは、各機能をオンラインで有効にします。-Allオプションは、Hyper-Vに関連するすべての必須機能コンポーネントを有効にするために使用されます。

  • システムの再起動:

上記のコマンドを実行した後、変更を適用するためにシステムを再起動する必要があります。PowerShellから以下のコマンドを実行して再起動します。

Restart-Computer

これで、「Windowsの機能の有効化または無効化」で「Hyper-V」、「Linux 用 Windows サブシステム」、および「仮想マシンプラットフォーム」が有効になり、システムが再起動されます。これにより、WSLのインストールや仮想マシンの利用など、さまざまな高度な機能を使用する準備が整います。

2. WSLの有効化とインストール

WSLとは、Windows上でLinuxバイナリエグゼキュータブルをネイティブに実行することができる互換レイヤです。WSLを有効にしてインストールするには、以下の手順に従ってください。

  • スタートメニューを開き、PowerShellを管理者権限で実行します。
  • 次のコマンドを入力して実行し、WSLを有効にします。
wsl --install -d Ubuntu-22.04

このコマンドは、WSLを有効にし、必要なLinuxカーネルコンポーネントをインストールし、Linuxディストリビューション(Ubuntu-22.04)をダウンロードします。

3. Linuxディストリビューションのセットアップ

インストールが完了したら、スタートメニューからLinuxディストリビューションを起動し、初回起動時にユーザー名とパスワードを設定します。

WSL上のUbuntu 22.04で初回起動時に行っておくと良い設定や作業はいくつかあります。これらは、将来的な作業の効率化、セキュリティの向上、およびシステムの最適化に役立ちます。以下に主なものをリストアップします。

  • システムの更新

最初に行うべきは、パッケージリストとインストール済みパッケージの更新です。これにより、セキュリティ修正やバグ修正を含む最新の状態に保てます。

sudo apt update && sudo apt upgrade -y
  • 必要なユーティリティと言語のインストール

開発に必要なツールやライブラリ、言語などをインストールします。例えば、build-essential パッケージには、多くの開発プロジェクトで必要とされるコンパイラやライブラリが含まれています。

sudo apt install -y build-essential

特定の開発言語やフレームワークに関連するパッケージもこのタイミングでインストールすると良いでしょう。

  • タイムゾーンの設定

システムのタイムゾーンを正しく設定することで、時刻に関連する操作が正確に行われます。

sudo dpkg-reconfigure tzdata

コマンドを実行すると、インタラクティブなメニューが表示されるので、
次に、「Asia」を選んでEnterキーを押す。その後、「Tokyo」を選んでEnterキーを押すと、日本のタイムゾーン(Asia/Tokyo)に設定される。dateで確認する

date
  • ロケールの設定

システムのロケールを設定することで、言語や地域に関連する設定を調整できます。

sudo locale-gen en_US.UTF-8
sudo update-locale LANG=en_US.UTF-8

必要に応じて、en_US.UTF-8をご自身の好みのロケールに置き換えてください。

  • Gitの設定

バージョン管理システムは、ほとんどの開発プロジェクトにとって不可欠です。Gitをインストールし、ユーザー名とメールアドレスを設定します。

sudo apt install -y git
git config --global user.name "Your Name"
git config --global user.email "youremail@example.com"
git config -l

これらの初期設定を行うことで、WSL上のUbuntu 22.04環境をスムーズにかつ効率的に使用するための基盤を整えることができます。

4. Dockerのインストール

WSL環境にDockerをインストールするには、以下のコマンドを実行します。

  • Linuxディストリビューションでターミナルを開きます。
  • Dockerのインストールスクリプトをダウンロードし、実行します。
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
  • Dockerサービスを起動し、起動時に自動的にDockerが起動するように設定します。
sudo systemctl enable docker
sudo systemctl start docker
  • ユーザーをdockerグループに追加し、ログアウトして再ログインします。これにより、sudoなしでDockerコマンドを実行できるようになります。
sudo usermod -aG docker $USER
  • Dockerのバージョン確認

Dockerが正しくインストールされているか、どのバージョンがインストールされているかを確認するには、ターミナルから以下のコマンドを実行します。

docker --version

このコマンドは、Dockerのバージョン情報を表示します。例えば、「Docker version 27.2.1, build 9e34c9b」といった形式で出力されるはずです。

  • Docker Engineの動作確認
    一旦ログアウトして、入り直します。
exit
wsl -d Ubuntu-22.04

Docker Engineが正しく動作していることを確認するために、Hello Worldイメージを実行することが一般的です。このテストは、Dockerが正しくインストールされ、コンテナを起動できる状態にあるかどうかを確認します。

docker run hello-world

このコマンドを実行すると、Dockerは「hello-world」というイメージを探し(ローカルに存在しない場合はダウンロードし)、コンテナを起動して、Hello Worldメッセージを表示します。成功すれば、Dockerが正しく機能していることが確認できます。

  • 追加のDockerコマンド

Dockerの動作確認に役立つその他のコマンドは以下の通りです。

  • Dockerの状態確認:
sudo systemctl status docker

このコマンドは、Dockerサービスの状態を表示します。正常に動作していれば、「active (running)」と表示されます。

  • インストールされているDockerイメージのリスト:
docker images

このコマンドは、ローカルにインストールされているDockerイメージのリストを表示します。

これらの基本的なコマンドを使うことで、Dockerのインストール状況を確認し、基本的な動作確認を行うことができます。

5. Docker Composeのインストール

Docker Composeは、2021年8月にリリースされたDocker Compose V2から、Docker CLIに統合されています。これにより、追加でdocker-composeをインストールする必要がありません。このバージョンでは、従来のdocker-composeコマンドに代わり、docker composeという新しい形式のコマンドが導入されました。

Docker Compose のバージョン確認

docker compose version

上記のコマンドでDocker Composeのバージョンが表示されれば、インストールは完了です。

Discussion