Windows10でdockerを使用する方法(docker on WSL2編)
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か所だけ異なります。
システムをアップデートする
以下のコマンドを実行するとシステムのアップデートが実行されます。
$ 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
最後まで読んでいただきありがとうございます。
また読んでくださいませ。
そんじゃーね。