「Docker」をWindowsの「WSL2」上にインストールする方法

この記事は 4 分で読めます。
概要

本記事では、WindowsにてLinux Ubuntuが利用できるWindows Subsystem for Linux 2 (WSL2)上で仮想環境プラットフォーム「Docker」をインストールする方法を紹介します。

本記事の読者層

WindowsのWSL2上にDockerをインストールして利用したい方

Windowsの「WSL2」上で「Docker」

Windows10/11では、「WSL 2」 (Windows Subsystem for Linux 2 )をインストールすることでLinux UbuntuをWindows上で利用できます。本記事では、このWSL2上で仮想環境プラットフォーム「Docker」をインストールする方法を紹介します。

改めてお伝えすると、「WSL2」には、前バージョンとして「WSL1」があります。この「WSL 1」だけでは「Docker」はインストールができません。このため「docker」使用には「WSL 2」のインストールが必須となります。

■「WSL 2」 をまだWindowsにインストールしていない方は、以下記事をご参照しインストールしてください。

Windows環境下で「WSL2」をインストールする方法に関しては、以下記事をご参照下さい。

■macOSのUnix系環境でも、Linux環境同様にDockerを利用することも出来ます。

Linux環境下で「Docker」をインストールする方法に関しては、以下記事をご参照下さい。

macOS環境化での「Docker」をインストール方法は以下の記事を参照ください。

Dockerの環境

以下の環境下でインストールを想定します。

  • Docker (Windows Subsystem for Linux 2 @Windows 10 & 11)
    バージョン 20.21

Windows10/11の「WSL2」環境下で「Docker」のインストール方法

以下はWSL2でのコマンドラインです。

初期設定

①まず、updateとupgradeを行っておきます。

$ sudo apt-get update
$ sudo apt-get upgrade

②次に、HTTPS経由でDockerリポトジを使用するためのパッケージをインストールします。

$ sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
Reading package lists... Done
Building dependency tree
Reading state information... Done
ca-certificates is already the newest version (20211016~18.04.1).
ca-certificates set to manually installed.
curl is already the newest version (7.58.0-2ubuntu3.21).
curl set to manually installed.
software-properties-common is already the newest version (0.96.24.32.18).
software-properties-common set to manually installed.
The following NEW packages will be installed:
  apt-transport-https gnupg-agent
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 9216 B of archives.
After this operation, 197 kB of additional disk space will be used.
Do you want to continue? [Y/n] ←Yを選択

Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 apt-transport-https all 1.6.14 [4348 B]
Get:2 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 gnupg-agent all 2.2.4-1ubuntu1.6 [4868 B]
Fetched 9216 B in 1s (11.8 kB/s)
Selecting previously unselected package apt-transport-https.
(Reading database ... 55524 files and directories currently installed.)
Preparing to unpack .../apt-transport-https_1.6.14_all.deb ...
Unpacking apt-transport-https (1.6.14) ...
Selecting previously unselected package gnupg-agent.
Preparing to unpack .../gnupg-agent_2.2.4-1ubuntu1.6_all.deb ...
Unpacking gnupg-agent (2.2.4-1ubuntu1.6) ...
Setting up apt-transport-https (1.6.14) ...
Setting up gnupg-agent (2.2.4-1ubuntu1.6) ...

③次に、Dockerの公式GPGキーを追加します。

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
OK

④そして、リポジトリへの追加を行います。

$ sudo apt-key fingerprint 0EBFCD88
pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

⑤リポトジソースに追加

sudo add-apt-repository \
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"

コマンドラインからDockerのインストール

①再度、updateとupgradeを繰り返します。

$ sudo apt-get update
$ sudo apt-get upgrade

Dockerのインストールを行います。今回インストールするのは、Dockerの無償版であるDocker-CEです。

$sudo apt-get install docker-ce docker-ce-cli containerd.io
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  dbus-user-session docker-ce-rootless-extras docker-scan-plugin pigz
Suggested packages:
  aufs-tools cgroupfs-mount | cgroup-lite
Recommended packages:
  slirp4netns
The following NEW packages will be installed:
  containerd.io dbus-user-session docker-ce docker-ce-cli docker-ce-rootless-extras docker-scan-plugin pigz
0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 102 MB of archives.
After this operation, 383 MB of additional disk space will be used.
Do you want to continue? [Y/n] y ←Yを選択

Get:1 https://download.docker.com/linux/ubuntu bionic/stable amd64 containerd.io amd64 1.6.10-1 [27.7 MB]
Get:2 http://archive.ubuntu.com/ubuntu bionic/universe amd64 pigz amd64 2.4-1 [57.4 kB]
Get:3 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 dbus-user-session amd64 1.12.2-1ubuntu1.4 [9388 B]
Get:4 https://download.docker.com/linux/ubuntu bionic/stable amd64 docker-ce-cli amd64 5:20.10.21~3-0~ubuntu-bionic [41.5 MB]
Get:5 https://download.docker.com/linux/ubuntu bionic/stable amd64 docker-ce amd64 5:20.10.21~3-0~ubuntu-bionic [20.5 MB]
Get:6 https://download.docker.com/linux/ubuntu bionic/stable amd64 docker-ce-rootless-extras amd64 5:20.10.21~3-0~ubuntu-bionic [8391 kB]
Get:7 https://download.docker.com/linux/ubuntu bionic/stable amd64 docker-scan-plugin amd64 0.21.0~ubuntu-bionic [3622 kB]
Fetched 102 MB in 17s (6049 kB/s)
Selecting previously unselected package pigz.
(Reading database ... 55532 files and directories currently installed.)
Preparing to unpack .../0-pigz_2.4-1_amd64.deb ...
Unpacking pigz (2.4-1) ...
Selecting previously unselected package containerd.io.
Preparing to unpack .../1-containerd.io_1.6.10-1_amd64.deb ...
Unpacking containerd.io (1.6.10-1) ...
Selecting previously unselected package dbus-user-session.
Preparing to unpack .../2-dbus-user-session_1.12.2-1ubuntu1.4_amd64.deb ...
Unpacking dbus-user-session (1.12.2-1ubuntu1.4) ...
Selecting previously unselected package docker-ce-cli.
Preparing to unpack .../3-docker-ce-cli_5%3a20.10.21~3-0~ubuntu-bionic_amd64.deb ...
Unpacking docker-ce-cli (5:20.10.21~3-0~ubuntu-bionic) ...
Selecting previously unselected package docker-ce.
Preparing to unpack .../4-docker-ce_5%3a20.10.21~3-0~ubuntu-bionic_amd64.deb ...
Unpacking docker-ce (5:20.10.21~3-0~ubuntu-bionic) ...
Selecting previously unselected package docker-ce-rootless-extras.
Preparing to unpack .../5-docker-ce-rootless-extras_5%3a20.10.21~3-0~ubuntu-bionic_amd64.deb ...
Unpacking docker-ce-rootless-extras (5:20.10.21~3-0~ubuntu-bionic) ...
Selecting previously unselected package docker-scan-plugin.
Preparing to unpack .../6-docker-scan-plugin_0.21.0~ubuntu-bionic_amd64.deb ...
Unpacking docker-scan-plugin (0.21.0~ubuntu-bionic) ...
Setting up containerd.io (1.6.10-1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /lib/systemd/system/containerd.service.
Setting up docker-scan-plugin (0.21.0~ubuntu-bionic) ...
Setting up dbus-user-session (1.12.2-1ubuntu1.4) ...
Setting up docker-ce-cli (5:20.10.21~3-0~ubuntu-bionic) ...
Setting up pigz (2.4-1) ...
Setting up docker-ce (5:20.10.21~3-0~ubuntu-bionic) ...
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service.
Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket.
invoke-rc.d: could not determine current runlevel
Setting up docker-ce-rootless-extras (5:20.10.21~3-0~ubuntu-bionic) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for ureadahead (0.100.0-21) ...
Processing triggers for systemd (237-3ubuntu10.56) ...

③その後、インストールが完了できたか確認するために、Dockerのバージョンを確認します。

$ docker --version
Docker version 20.10.21, build baeda1f

④次にDockerのサービスを開始させます。

$ sudo service docker start
WSL2立ち上げ時

WSL②立ち上げ直後にDockerを利用すると

エラーメッセージ

「Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?」

が表示されます。この表示が出た場合には、

サービスが開始されていない場合があるため、コマンドで上記の

「sudo service docker start」

をタイプしてください。

⑤現在のユーザー(ルート以外でも)でも利用できるように以下に自分のユーザー<your-user>を登録しておきます。

$ sudo usermod -aG docker <your-user>

これで以上終了となります。

まとめ

本記事のポイント

WindowsのWSL2上で仮想環境プラットフォーム「Docker」をインストールする方法を紹介しました。

・WSL2では、Dockerのインストールは可能です。

・Ubuntu18.04にDockerをインストールする際にはリポトジの追加が必須です。

関連リンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です