0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Docker for Windows】環境構築しながら学ぶWSL/Dockerの全体像

Last updated at Posted at 2025-02-07

はじめに

WindowsでDockerを使用するにあたり、以下のような疑問を持つことがありました。

  • WSLのインストールが必要とあるが、それはどこで動作しているのか?
  • Ubuntuコンテナを作成できるが、環境構築時にインストールしたUbuntuとは別物なのか?

これらの疑問は、WindowsにおけるDockerの使用はWSLの環境構築が前提となるため、全体像が複雑になりイメージしづらいことが原因だと考えられます。

image.png

これは「WindowsでDockerに必要な環境構築を行い、コンテナを動かしている様子」を図にしたものです。

以下では、実際の環境構築手順に沿って、それぞれの操作では上図のどこにあたる部分を整備しているのか紐解き、最終的に先ほどの図を目指す構成で進めます。

対象読者

  • WindowsでDockerの環境構築を行いたい方
  • 環境構築の手順で、それぞれ何をしているのか知りたい方
  • WSLとDockerの関係や、全体像を知りたい方

この記事でやらないこと

  • Dockerの概要
  • Dockerの操作方法

環境構築手順

前提として、DockerはLinux上でしか動かせないため、WindowsやMacでDockerを使用するには何かしらの方法でLinux環境を用意する必要があります。

仮想化ソフトを使用して用意することもできますが、WindowsではWSL(Windows Subsystem for Linux)を使用する方法が一般的です。

よって、WindowsでDockerを使用するには、大きく2つのステップを踏む必要があります。

  1. WSLのインストール
  2. Dockerのインストール

WSLのインストール

image.png

WSLのインストールとして必要な手順は以下の4つです。
①仮想マシンの機能を有効にする
②WSLを有効にする
③Linuxカーネルをインストールする
④Linuxディストリビューションをインストールする(任意)

これらは個別にGUIまたはコマンドで設定するか、wsl --installを実行して①~④まで一度に設定する方法があります。

今回は個別に実行していきます。

①仮想マシンの機能を有効にする

・コントロールパネル > プログラム > Windowsの機能の有効化または無効化
Virtual Machine Platformにチェック
image.png

実行結果
image.png

②WSLを有効にする

・コントロールパネル > プログラム > Windowsの機能の有効化または無効化
Linux用Windowsサブシステムにチェック
image.png

実行結果
image.png

③Linuxカーネルをインストールする

以下URLより、インストーラをダウンロードし実行
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

実行結果
image.png

これにより、Microsoftが提供するWSL用のLinuxカーネルがインストールされます。

④Linuxディストリビューションをインストールする(任意)

ⅰ) WSL2を既定のバージョンとして設定する
PowerShellを起動し、以下を実行

wsl --set-default-version 2

ⅱ) Linuxディストリビューションをインストールする
Microsoft Storeを開き、任意のディストリビューション(画像はUbuntu)をインストールする
image.png

実行結果
image.png

ちなみに、ここでインストールしたUbuntuは、スタートメニューから実行、またはwsl -d Ubuntuで実行することができます。

本手順は、Dockerを動かすという目的だけであれば不要となっています。

というのも、一般的にLinuxはカーネルとユーザーランドという部品で構成されています。

image.png

先の手順でカーネルはインストール済みであり、後述する手順でDocker用のユーザーランドをインストールします。
よって、Dockerの環境構築という点においては、本手順は必須ではありません。

Microsoft Storeでインストールできるディストリビューションは、WSL用に提供されたユーザーランドを指します。

Dockerのインストール

image.png

Windows用Dockerのインストールとして必要な手順は以下のみです。
①Docker Desktop for Windowsをインストールする

①Docker Desktop for Windowsをインストールする

ⅰ) 以下URLより、インストーラをダウンロード
https://docs.docker.com/desktop/setup/install/windows-install/

image.png

ⅱ) インストーラを実行する
特段選択するようなものもなく、ポチポチ進んでOKでした。
(デスクトップにショートカットを作るかのチェックがあるくらい)

実行結果
image.png

インストールしたコンポーネント

本手順にてインストールした各コンポーネントについて、それぞれの役割を簡単に整理します。

docker-desktopユーザーランドがDocker関連のコンポーネントを実行する領域であり、
docker-desktop-dataユーザーランドはイメージやコンテナ、ボリュームなどのデータを格納する領域です。

また、Dockerの実行環境であるDocker Engineですが、中でも中核的な存在であるDockerデーモンが、ユーザーからのリクエストをDocker CLI経由で受け付けて、コンテナやイメージの管理を行います。

コンテナ実行中の様子

ここまでで環境構築が完了したので、最後に実際に動かしている様子を見ていきます。

Dockerを使って何がしたいかと言うと、コンテナと呼ばれる隔離された環境を用意して、その中であれこれしたいわけです。

例えば、以下コマンドを実行すると、nginxコンテナが立ち上がります。

docker run nginx
image.png

図にすると、このようにDocker Engine上にコンテナが立ち上がります。
コンテナにはベースイメージと呼ばれる、必要最小限なユーザーランドのようなものが含まれています。

Debianベースイメージを使用していることはDocker Hubで確認できます。

image.png

https://hub.docker.com/layers/library/nginx/latest/images/sha256-b23ab5e22da91fcd70ee5fe343a7a76992bf79ca27297010fb16e40e2c29edf1

image.png

これにより、OSはLinux(Debian)、ミドルウェアとしてnginxを用意した環境が、WSLに内包された形で動いているわけです。

おわりに

image.png

WSLやDockerに触れていると、今自分が行っている操作がどこで行われているのか分からなくなることがあります。
本記事が、少しでもイメージを具体化する手助けとなれば幸いです。

動作環境

  • Windows11 24H2
  • WSL2(2.1.5.0)
  • Docker 27.4.0
  • Docker Desktop 4.37.1

参考

WSLのインストール

0
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?