4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

docker for windows (Docker Desktop WSL 2 backend)導入メモ

Posted at

wsl2とdockerについて

wsl2は完全なlinuxなので普通にlinuxにdockerを入れる手順を試してみましたが、どうやらwsl2ではまだ(?)systemdが使えないらしくdockerを起動しようとしたところで詰みました。

完全なlinuxといいつつもそういった制限はあるみたいです。

だからDocker Desktopが必要なのですね。ということでdocker for windows(Docker Desktop WSL2 backend)の導入メモです。

Docker Desktop WSL 2 backend

install

  • Docker Desktop

https://docs.docker.com/docker-for-windows/wsl/

上記の手順通りに進めていきます。

Download

Download Docker Desktop Stable 2.3.0.2 or a later release.

このリンク先の[Get Docker Desktop for Windows (stable)](https://download.docker.com/win/stable/Docker Desktop Installer.exe)からDocker Desktop Installer.exeをDLしてインストールする。

wsl -l -v

docker-desktop-dataとdocker-desktopが増えてる。

docker version
docker run hello-world
docker ps -a

hello-worldのimageが増えてる。

vscodeに「Remote – WSL」を入れる

Visual Studio Codeの拡張「Remote – WSL」を入れるとwsl2内で直接vscodeが動かせて便利らしいので入れる。

wsl2上でcode .でvscodeが開くようになる。

centos8にdockerを入れる

systemdは動かないけど、docker for windowsのdockerデーモンを共用するとwsl2内でdockerが使えるようになるらしい。

install

centos8からyumじゃなくてdnfになっている。とりあえずupdate。

dnf - y update

docker入れる為のリポジトリの追加し、ちゃんと入ったか確認

dnf install 'dnf-command(config-manager)' # dnf config-managerコマンドを使えるようにする
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
repolist

dockerをインストール
CentOS 8 / Docker CE Stable x86_64に無かったので、CentOS 7 / Docker CE Stable x86_64から。

dnf -y install wget
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
dnf -y install containerd.io-1.2.6-3.3.el7.x86_64.rpm
dnf -y install docker-ce docker-ce-cli 

dockerの起動

systemctl start docker

System has not been booted with systemd as init system (PID 1). Can't operate.

ぐぐってみると、WSL 2 ではまだsystemdが使えないらしい。

Docker Desktopのデーモン共用

Docker DesktopのSettings>GeneralのExpose daemon on tcp://localhost:2375 without TLSにチェックを入れてApply & Restartする。

docker -H tcp://localhost:2375 ps -a

Cannot connect to the Docker daemon at tcp://localhost:2375. Is the docker daemon running?

dockerデーモンが動いてないと言われる...。

https://forums.docker.com/t/wsl-and-docker-for-windows-cannot-connect-to-the-docker-daemon-at-tcp-localhost-2375-is-the-docker-daemon-running/63571/10

同じ問題を抱えてる人が結構いるみたいなのでバグ...?
普通に動いてる人もいるみたいだし、私も再起動とかしてると動いたりまた動かなくなったりする。
よく分からないのでまた調べて解決したら追記します。

以下は、動いた場合にするTODO
毎回 -H tcp://localhost:2375を指定するのが面倒なので設定しておく

echo "export DOCKER_HOST=tcp://localhost:2375" >> ~/.bashrc && source ~/.bashrc

参考

以下を参考にさせていただきました。

4
2
2

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
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?