WSL2 + Docker Desktop for Windowsでdockerを動かす
WSL1でも何とかできていたけど、WSL2でさらに簡単にDockerが動かせるようになっていたので試してみました。
WSL2のインストール
WSL 2 のインストール | Microsoft Docsを参考にしてWSL2を導入する。
WSL旧環境のアンインストール・クリア
自分の場合、Docker for Windowsのデーモンの設定(DOCKER_HOSTをWSL側で設定したりとか)を行っていたので、これを機会にいったん導入したWSL環境のクリアも行いました。
「設定>アプリと機能」で、対象のディストリビューションDebianとかUbuntuを検索し、アンインストール&インストールしました。(「詳細オプション」にあるリセットボタンをクリックするだけでもよかったかも)
Docker Desktop for Windows
Docker Desktop for Windows - Docker HubからDocker Desktop for Windowsをインストールする。
Dockerが起動したら、設定(Setting)から以下の設定を行う。
- Generalの「Enable the experimental WSL 2 based engine」をチェックする。
- Resourcesの「WSL INTEGRATION」から対象ディストリビューションについて有効にする
デスクトップに通知があったらOKとする。
Debian (WSL2)にdockerを入れる
Get Docker Engine - Community for Debian | Docker Documentationを参考にしてDockerを入れる。
まずはaptのリポジトリの準備をする。
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable"
dockerをインストールする。
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
以下で「Hello from Docker!」と表示されていればOK。
sudo docker run hello-world
Docker Compose
Install Docker Compose | Docker Documentationを参考に、Docker Comoseをインストールする。
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
問題がなければ、以下でバージョンが表示されるはず。
docker-compose --version
念の為、起動を確認しておく。 ディレクトリを切って「docker-compose.yml」を次のように作る。
vi docker-compose.yml
version: "3"
services:
hello:
image: hello-world:latest
以下で動けばOK。
sudo docker-compose up
前はDOCKER_HOSTを入れないとだめだったり、dockerは動くのに、docker-composeは動かなかったりしたけど、だんだんさくっと動くようになってきた。