環境構築

【Windows版】Docker Engineを使う方法【WSL+Docker】

Windowsを使っていて、開発で何かと困る問題――「Docker Engineが使えない!」を、この記事では解決します。

今までLinuxとDocker Engineで開発していたのに、急に明日からWindowsで開発してくれ、と言われたことありませんか? 私はあります。折角、整えた環境を手放し、また一から環境構築をし直す…。環境構築はエンジニアから、多大な時間と労力とやる気を奪います。早くプログラミングさせてくれ!と私は切実に思います。

少しでもエンジニアの皆さんの負担を軽くするべく、また私と同じく環境構築だけに1週間以上時間を奪われないようにするためにも、WindowsでDocker Engineを使う方法を解説します。

手順

WSLのインストール

初めに、WindowsのLinux仮想環境を整えましょう。WSL (Windows Subsystem for Linux) を使用します。
(都合上、以降の画像はすべてWindows10ですが、Windows11だと思ってください。家のパソコンのスペックが低すぎてWindows11入りませんでした…)

タスクバーの検索ボックスに「cmd」と入力します。

「コマンドプロンプト」を右クリックし、「管理者として実行」をクリックしましょう。

”このアプリがデバイスに変更を加えることを許可しますか?”と出ましたら、「はい」を選択してください。

以下のコマンドをコマンドプロンプトに入力して、WSLの最新版をインストールします。

wsl --install --no-distribution

”このアプリがデバイスに変更を加えることを許可しますか?”と出ましたら、再び「はい」を選択してください。インストールが終了しましたら、パソコンを再起動します。

Ubuntuのインストール

パソコンを再起動したら、タスクバーの検索ボックスに「cmd」と打ち、「コマンドプロンプト」をクリックします。
 ※「管理者として実行」はしなくて大丈夫です。

以下のコマンドを入力して、インストール可能なディストリビューションを確認します。

wsl -l -o

今回は、この中から「Ubuntu-24.04」をインストールします。

以下のコマンドを入力して、「Ubuntu-24.04」をインストールします。

wsl --install -d Ubuntu-24.04

インストールが完了すると、ユーザ作成に移ります。以下の情報を入力してユーザを作成しましょう。好きなように設定していただいても大丈夫です。
パスワードは画面に文字が表示されませんが、打った文字は正常に入力できております。入力し終わった段階でEnterキーを押しましょう)

Enter new UNIX username: user
New password: user
Retype new password: user

以下の行が最後に表示されたらインストール完了です。

以下のコマンドを入力して、Ubuntuを終了しましょう。

exit

WSLのミラーモード Windows11限定)

ここで大変重要な設定をしたいと思います。特に、社内のネットワークを使っている方や、頑丈なネットワークセキュリティをお持ちの方に必見の内容となります。

通常のWSLのモードでUbuntuを起動すると、ホストとは異なるIPアドレスが仮想環境に勝手に割り当てられます。これが、ネットワーク接続の障壁になることが多々あります。(私は社内のプロキシに引っ掛かりました)

そこで、ホスト(Windows)側のネットワーク設定を引き継ぐ、ミラーモードを設定します。社内のプロキシを容易に突破することができます。(これを見付けるのに、1週間掛かりました…)

設定方法は簡単です。

以下のコマンドを入力して、「.wslconfig」ファイルを作成します。(<ユーザ名>は自分のユーザ名に置き換えてください)

echo [wsl2] > c:\Users\<ユーザ名>\.wslconfig | 
echo networkingMode=mirrored >> c:\Users\<ユーザ名>\.wslconfig

以下のコマンドを入力して、ファイルの中身を確認します。

type c:\Users\<ユーザ名>\.wslconfig

上記の内容が表示されれば成功です。

Dockerのインストール

コマンドプロンプトに以下のコマンドを入力して、Ubuntuを起動します。

wsl

Docker公式サイトのインストール方法(https://docs.docker.com/engine/install/ubuntu/)に則って、Docker Engineをインストールしましょう。

以下のコマンドを1つずつ入力して、DockerのGPG鍵をダウンロードします。
途中、パスワードが求められたら、ユーザ作成で設定したパスワードを入力してください。
”[Y/n]”は、 "y"を入力します。

sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

次に、以下のコマンドを入力して、Docker Engineをインストールします。
”[Y/n]”は、 "y"を入力してください。

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

最後に、以下のコマンドを入力して、Docker Engineが正常に動作するか確認します。

sudo docker run hello-world

上記の内容が表示されたら成功です。
Docker Engineのインストールが無事完了となります!
おめでとうございます!

まとめ

今回は、WindowsでDocker Engineを使用する方法をご紹介しました。私が大変苦労したネットワーク設定についても熱く語らせていただきました。本記事がお役に立ちましたら幸いです。

また現状、Dockerコマンドを実行するには、「sudo」を付けなければなりません。実行権限がrootにしかないためです。作成したユーザにDockerコマンドの実行権限を付与する方法もございますので、別の記事でご紹介したいと思います。

最後まで閲覧いただきありがとうございます!

  • この記事を書いた人

かいせい

駆け出しエンジニア。工学系(修士)卒。 個人でゲーム制作をしていた経験があります。 「ゲーム開発×AI」をコンセプトに、ゲーム制作に役立つ情報を発信します!

-環境構築
-, , ,