【2023年】これからブログを始める人へおすすめの書籍

Kissy

Windows10でdockerを使用する方法(docker on WSL2編)

作成: 更新:

docker
WSL2が搭載されたWindows10 20H1 build18917がリリースれました。Linuxカーネルを搭載しており互換性が高く、dockerがそのまま動作する、と注目のWSL2です。

この記事では、WSL2でdockerを使用する方法を記載します。なお、WSLでも同様の手順で使用できます。

<記事中のコマンドの表記についての説明>
記事中には、PowerShellコマンド、通常のWindowsコマンド、Linuxのコマンドを記載しています。記事中では、それぞれ以下のプロンプトで表記しています。

PowerShellコマンドプロンプト:PS>
Windowsコマンドプロンプト:>
Linuxコマンド(一般ユーザー):$
Linuxコマンド(管理者ユーザー):#

コピペする際は、プロンプト以降のコマンドをコピペしてください。

dockerの使用方法

前提

Windows10のWSL2上でのdockerの使用方法になります。2019年6月現在、WSL2はWindows Insider Preview 20H1 build 18917以降で利用可能です。

Ubuntuのインストール

WSL2にUbuntuをインストールする方法については、こちらの記事を参照ください。

Windows10 20H1 build 18917が登場。注目のWSL2をさっそく使ってみた!

dockerのインストール

Ubuntuをインストールしたら、さっそくdockerをインストールしていきます。基本的には、以下の公式サイトと同じですが、WSLでは1か所だけ異なります。

Get Docker CE for Ubuntu

システムをアップデートする

以下のコマンドを実行するとシステムのアップデートが実行されます。

$ sudo apt-get update

前提のソフトウェアをインストールする

以下のコマンドを実行して、dockerに必要な前提のソフトウェアをインストールします。

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

docker公式のPGP公開鍵をインストールする

以下のコマンドを実行してdocker公式のPGP公開鍵をインストールします。

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

PGP公開鍵が正しいかチェックするする

インストールした公開鍵が正しいかをチェックします。以下のコマンドを入力し、9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88のキーが見つかれば正しい公開鍵がインストールされています。

$ 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]

aptリポジトリの設定する

ここで、インストールするdockerのバージョンを指定します。以下のコマンドでは、stable(安定バージョン)を指定していますが、特定のバージョンを指定することも可能です。(Windows10の過去のバージョンでは、特定のバージョンのdockerでないと動かないということがあった)

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

dockerをインストールする

以下のコマンドを実行してdockerをインストールします。

$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

dockerを起動する

ここが公式とは異なる手順です。

WSLでは以下でdockerを起動する必要があります。また、WSLを起動するたびに実行が必要です。

$ sudo cgroupfs-mount && sudo service docker start

hello-worldを実行する

以下を実行するとサンプルのhello-worldイメージを実行します。Hello from Docker!と表示されれば成功です。

$ sudo docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.
(省略…)

ここで、Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?というエラーが出る場合には、以下のコマンドを実行してください。

$ sudo service docker stop
$ sudo service docker start

それでもエラーが出る場合は、WSL2を再起動して「dockerを起動する」の手順から再度実行してみてください。

docker-composeのインストール

dockerだけだと複数のコンテナの管理が難しいので、docker-composeもインストールしておきます。

なお、ここではdocker-compose 1.24.1をLinuxにインストールしています。最新バージョンの確認や他OSでのインストール方法については、公式サイトを参照ください。
Install Docker Compose

docker-composeのインストールする

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

実行権限を設定する

$ sudo chmod +x /usr/local/bin/docker-compose

インストールされたことを確認する

docker-composeのバージョンを表示させてインストールされたことを確認します。

$ sudo docker-compose --version

最後まで読んでいただきありがとうございます。
また読んでくださいませ。
そんじゃーね。

関連記事

SPONSORED LINK
SPONSORED LINK