WindowsでWSL2とDockerをインストールする方法
Windows PCで開発環境を整えたい初心者向けに、WSL2とDockerのインストール方法を解説します。Windows上でLinux環境を動かすWSL2の導入から、アプリケーション実行環境を簡単に作れるDockerのインストールまでを、コマンド付きで分かりやすく説明します。
開発環境
- OS: Windows11
- Visual Studio Code: 1.73.0
WSL2のインストール
WSL (Windows Subsystem for Linux) は、Windows上でLinux環境を実行するための機能です。これにより、Windowsを使いながらLinuxのコマンドやアプリケーションを利用できるようになります。
WSLをインストール
まず、Windows PowerShellまたはコマンドプロンプトを管理者として実行し、以下のコマンドを入力してWSLをインストールします。
1wsl --install
このコマンドを実行すると、WSLの有効化と、標準のLinuxディストリビューションであるUbuntuのインストールが自動的に行われます。
インストールが完了すると、Ubuntuの初期設定が始まります。Linux環境で使用するユーザー名とパスワードの設定を求められますので、任意のものを設定してください。ここで設定するパスワードは、Windowsのログインパスワードとは異なるものです。
WSLのバージョンを2に設定
WSLにはバージョン1と2があり、バージョン2の方がパフォーマンスが高く機能も豊富です。以下のコマンドで、WSLを最新の状態に更新し、標準バージョンを2に設定します。
まず、WSLのカーネルなどを最新版に更新します。
1wsl --update
次に、今後新しくインストールするLinuxディストリビューションで、自動的にバージョン2が使われるように既定値を設定します。
1wsl --set-default-version 2
動作確認
設定が正しく反映されているかを確認します。 以下のコマンドで、WSLの既定のバージョンが2になっていることを確認できます。
1wsl --status
出力結果1既定のディストリビューション: Ubuntu 2既定のバージョン: 2
既定のバージョン: 2と表示されていれば、設定は成功です。
次に、インストール済みのLinuxディストリビューション(Ubuntu)のバージョンを確認します。
1wsl -l -v
出力結果1 NAME STATE VERSION 2* Ubuntu Running 2
UbuntuのVERSIONが2になっていれば、正しく設定されています。STATEはStopped(停止中)またはRunning(実行中)のいずれかになりますが、問題ありません。
WSL起動
以下のコマンドで、インストールしたUbuntuを起動します。
1wsl -d Ubuntu
このコマンドを実行すると、Ubuntuのターミナル(コマンドを入力する画面)が表示されます。 次に、以下のコマンドをUbuntuのターミナル内で実行し、OSのバージョン情報を確認します。
1lsb_release -a
出力結果1No LSB modules are available. 2Distributor ID: Ubuntu 3Description: Ubuntu 24.04.3 LTS 4Release: 24.04 5Codename: noble
このように、インストールされているUbuntuの詳細情報が表示されます。
パッケージの更新
最後に、Ubuntuにインストールされているソフトウェアのリストを最新の状態に更新します。これは、新しいアプリケーションをインストールする前の準備として重要な作業です。
aptはUbuntuでソフトウェアを管理するためのコマンドです。sudoは、管理者権限でコマンドを実行するために必要で、実行時にパスワードを求められることがあります。
1sudo apt-get update
これで、WSL2とUbuntuの基本的なセットアップは完了です。
Dockerのインストール
このセクションでは、Linuxディストリビューションの一つであるUbuntuにDockerをインストールする手順を解説します。コマンドを一つずつ実行していくことで、お使いの環境でDockerが利用できるようになります。
Dockerに必要なパッケージ
まず、Dockerのインストールに先立って、必要となる基本的なソフトウェア(パッケージ)をインストールします。これらは、安全な通信を行ったり、ファイルをダウンロードしたり、デジタル署名を扱ったりするために使われます。
1sudo apt install -y ca-certificates curl gnupg
aptはUbuntuでソフトウェアを管理するためのコマンドです。このコマンドにより、Docker公式の情報を安全に受け取るための準備が整います。
Docker の GPG キーを登録
次に、これからインストールするDockerが、間違いなく公式から配布された本物であることを保証するための「GPGキー」という電子署名をシステムに登録します。これにより、不正なソフトウェアのインストールを防ぎます。
1sudo mkdir -m 0755 -p /etc/apt/keyrings 2curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
上記のコマンドは2つのステップで実行されます。
mkdirコマンドで、GPGキーを保管するための専用のディレクトリ(フォルダ)を作成します。curlコマンドでDockerの公式サイトからGPGキーをダウンロードし、gpgコマンドで適切な形式に変換して、先ほど作成したディレクトリ内に保存します。
権限の設定
先ほど保存したGPGキーのファイルに対して、システムが正しく読み取れるように権限を設定します。
1sudo chmod a+r /etc/apt/keyrings/docker.gpg
この設定により、aptコマンドがDockerの電子署名を検証できるようになります。
Dockerリポジトリ設定
次に、aptコマンドがDockerをどこからダウンロードすればよいか、その場所(リポジトリ)をシステムに教えます。
1echo \ 2"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ 3https://download.docker.com/linux/ubuntu \ 4$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ 5sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
このコマンドは、Docker公式リポジトリの情報を記載した設定ファイル/etc/apt/sources.list.d/docker.listを新規に作成します。
状態確認
設定ファイルが正しく作成されたかを確認します。
1cat /etc/apt/sources.list.d/docker.list
catコマンドはファイルの中身を表示するコマンドです。以下のような内容が表示されていれば、設定は成功です。
出力結果1deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu noble stable
追加情報を利用するために再度更新
新しいリポジトリ(Docker公式リポジトリ)をシステムに追加したため、そのリポジトリからインストールできるソフトウェアの一覧情報を取得し直す必要があります。
1sudo apt-get update
このコマンドを実行することで、aptがDockerを認識できるようになります。
dockerエンジンのインストール
準備が整いましたので、いよいよDocker本体(Docker Engine)と、関連ツールをインストールします。
1sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
このコマンド一つで、Dockerの実行に必要なソフトウェアが一括でインストールされます。
動作確認
最後に、Dockerが正しくインストールされ、正常に動作するかを確認します。
まず、現在実行中のDockerコンテナがないことを確認します。インストール直後は何も動いていないのが正常な状態です。
1sudo docker ps
下記のように、項目の見出しだけが表示されれば問題ありません。
出力結果1CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
次に、インストールされたDockerのバージョンを確認します。
1sudo docker --version
バージョン情報が表示されれば、コマンドが正しくインストールされています。
出力結果1Docker version 29.1.2, build 890dcca
最後に、簡単なテスト用のコンテナを実行してみましょう。hello-worldは、Dockerの動作確認のために公式から提供されているイメージです。
1sudo docker run hello-world
このコマンドを実行すると、以下のようなメッセージが表示されます。これは、Dockerのインストールと実行が成功したことを意味します。
出力結果1Unable to find image 'hello-world:latest' locally 2latest: Pulling from library/hello-world 317eec7bbc9d7: Pull complete 4ea52d2000f90: Download complete 5Digest: sha256:f7931603f70e13dbd844253370742c4fc4202d290c80442b2e68706d8f33ce26 6Status: Downloaded newer image for hello-world:latest 7 8Hello from Docker! 9This message shows that your installation appears to be working correctly. 10 11To generate this message, Docker took the following steps: 12 1. The Docker client contacted the Docker daemon. 13 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. 14 (amd64) 15 3. The Docker daemon created a new container from that image which runs the 16 executable that produces the output you are currently reading. 17 4. The Docker daemon streamed that output to the Docker client, which sent it 18 to your terminal. 19 20To try something more ambitious, you can run an Ubuntu container with: 21 $ docker run -it ubuntu bash 22 23Share images, automate workflows, and more with a free Docker ID: 24 https://hub.docker.com/ 25 26For more examples and ideas, visit: 27 https://docs.docker.com/get-started/ 28 29ishikawa@ishikawa:/mnt/c/Users/石川慎吾/Documents/development$
出力メッセージにある通り、Dockerは以下の手順で動作しました。
- あなたのPC(クライアント)からDockerの本体(デーモン)に接続しました。
hello-worldというイメージがPC内に無かったため、インターネット上の保管場所(Docker Hub)からダウンロードしました。- ダウンロードしたイメージをもとに新しいコンテナを作成し、実行しました。
- コンテナが実行した結果のメッセージをあなたの画面に表示しました。
「Hello from Docker!」というメッセージが表示されれば、インストール作業はすべて完了です。
sudoなしでDockerを使えるようにする
Dockerコマンドは、システムの重要な部分を操作するため、通常は管理者権han(sudo)を付けて実行する必要があります。
しかし、毎回sudoを入力するのは手間がかかります。そこで、現在ログインしているユーザーをdockerというグループに所属させることで、sudoを省略してDockerコマンドを実行できるように設定します。
以下のコマンドは、現在ログインしているあなた自身($USER)を、dockerグループに追加(-aG)するためのものです。
1sudo usermod -aG docker $USER
ユーザーのグループ情報を変更した場合、その設定をシステムに反映させるためには、一度セッションを再起動する必要があります。WSLの場合は、WSL自体を再起動することで変更が有効になります。
その後、WSLを再起動してください。
まず、以下のコマンドを実行して、現在起動しているWSLを完全に停止させます。
1wsl --shutdown
次に、以下のコマンドでWSLを再度起動します。この例ではUbuntuという名前のディストリビューションを起動していますが、ご自身の環境に合わせて名前を指定してください。この操作で再起動が完了し、設定が反映されます。
1wsl -d Ubuntu
PC再起動時の対応
PCを再起動すると、Dockerのようなソフトウェアが自動的に起動しない場合があります。その際は、これから説明するコマンドを使って、手動で状態の確認と起動を行う必要があります。
最初に、現在のDockerの状態を確認するために以下のコマンドを実行します。
sudoは管理者権限でコマンドを実行するという意味で、システムに関する操作で必要になります。service docker statusは「Dockerというサービスの状態(status)を表示してください」という命令です。
1sudo service docker status
もしDockerが停止していた場合は、次のコマンドで起動させます。
startは、指定したサービスを開始するための命令です。
1sudo service docker start
Dockerを起動した後、正常に動作しているかを確認するため、もう一度状態を確認するコマンドを実行します。
1sudo service docker status
コマンドを実行すると、以下のような結果が出力されます。
出力結果1● docker.service - Docker Application Container Engine 2 Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled) 3 Active: active (running) since Thu 2025-12-04 09:33:01 JST; 3min 40s ago 4TriggeredBy: ● docker.socket 5 Docs: https://docs.docker.com 6 Main PID: 7204 (dockerd) 7 Tasks: 18 8 Memory: 39.2M (peak: 40.2M) 9 CPU: 1.107s 10 CGroup: /system.slice/docker.service 11 └─7204 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
この出力結果の中で特に重要なのは、Active:という項目です。ここに緑色の文字でactive (running)と表示されていれば、Dockerサービスが正常に起動し、現在動作中であることを示しています。この状態になれば、Dockerを利用する準備が完了です。
Dockerの自動起動設定
ここでは、WSL (Windows Subsystem for Linux) を起動した際に、Dockerも自動で起動するように設定する方法を解説します。
まず、WSLの設定ファイルである /etc/wsl.conf の内容を確認します。このファイルはWSLの起動時の動作を制御します。sudoは管理者権限でコマンドを実行するという意味で、catはファイルの内容を表示するコマンドです。
1sudo cat /etc/wsl.conf
以下のような内容が表示されます。
出力結果1[boot] 2systemd=true 3 4[user] 5default=ishikawa
出力結果の [boot] セクションにある systemd=true という設定が重要です。systemd は、Linuxのシステムやサービスを管理するための仕組みです。この設定を有効にすることで、DockerのようなサービスをWSLの起動と同時に自動で立ち上げることが可能になります。
もし、お使いの環境でこの設定がされていない場合は、/etc/wsl.conf ファイルを編集し、以下の内容を追記または修正してください。
1[boot] 2systemd=true
設定ファイルを変更した後は、その内容を反映させるためにWSLを再起動する必要があります。まず、以下のコマンドで現在実行中のWSLを完全に停止させます。
1wsl --shutdown
次に、利用しているWSLディストリビューション(この例ではUbuntu)を再度起動します。
1wsl -d Ubuntu
WSLが再起動したら、最後にDockerサービスが自動で起動しているかを確認します。systemctl は systemd で管理されているサービスの状態を確認したり、操作したりするためのコマンドです。
1systemctl status docker
以下のような結果が表示されれば設定は成功です。
出力結果1● docker.service - Docker Application Container Engine 2 Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled) 3 Active: active (running) since Thu 2025-12-04 09:33:01 JST; 3min 40s ago 4TriggeredBy: ● docker.socket 5 Docs: https://docs.docker.com 6 Main PID: 7204 (dockerd) 7 Tasks: 18 8 Memory: 39.2M (peak: 40.2M) 9 CPU: 1.107s 10 CGroup: /system.slice/docker.service 11 └─7204 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
注目すべきは Active: active (running) の部分です。これが表示されていれば、Dockerがバックグラウンドで正常に動作していることを示します。また、Loaded: の行にある enabled は、システム起動時にDockerが自動起動するよう設定されていることを意味します。
おわりに
この記事では、wsl --installコマンドでWindowsにLinux環境を構築し、Dockerをインストールする手順を解説しました。Ubuntu上でDocker公式リポジトリを設定し、aptコマンドで安全にインストールする方法を学びました。最後にhello-worldコンテナを実行して動作を確認し、sudoなしでDockerを扱えるように設定したことで、快適な開発環境の準備が完了しました。