WSL 2 に Docker を入れる
Update: 2020-07-31
私の Windows 10 PC にようやく WSL 2 が来ました。 OneDrive がトラブっているのが原因で Windows のアップデートができないようだということまでわかったものの OneDrive のアンインストールなどの迂回策をとることができず、結局 OS をリセットしました。私の場合、メインのマシンが Mac で Windows のローカルに必要なデータはまったくないので、まあ、なんとか。
WSL 2 の導入手順は「 Windows 10 用 Windows Subsystem for Linux のインストール ガイド 」など見てください。
ディストリビューションはどれでもいいです。私は Debian を入れました。
PS C:\WINDOWS\system32> wsl --list --verbose
NAME STATE VERSION
* Debian Running 2
Docker Desktop は https://www.docker.com/products/docker-desktop からインストーラをダウンロードして起動します。
"Enable WSL 2 Windows Features" というチェックボックスがありますね。 WSL 2 は自動で入れてくれるようです。私の場合はディストリビューションの指定があるので先に入れておく手順でやる必要があることにかわりにはなさそうです。
インストールが終わったらところで [Start] ボタンを押すと、実際に Docker コンテナを動かすテストが始まります。
でも、私は git をインストールしていなかったのでエラーになりました。気にせずテストを先に進めて真っ赤のまま終わらせます。
終わったら WSL の bash を起動します。私の場合はスタートメニューの "Debian" です。そこで docker
コマンドを実行すると使用方法が表示されます。
$ docker
Usage: docker [OPTIONS] COMMAND
A self-sufficient runtime for containers
Options:
--config string Location of client config files (default "/home/michinobu/.docker")
-c, --context string Name of the context to use to connect to the daemon (overrides DOCKER_HOST env var and
... ... ... 途中略 ... ... ...
version Show the Docker version information
wait Block until one or more containers stop, then print their exit codes
Run 'docker COMMAND --help' for more information on a command.
id
コマンドを実行すると docker
グループに入っています。
Post-installation steps for Linux
の手順は自動で実行してくれていたようです。
$ id
uid=1000(michinobu) gid=1000(michinobu) groups=1000(michinobu),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),1001(docker)
Hello World も問題なし。
$ docker run hello-world
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.
以前「 gitlabcicddockernodefirebase 」で作成したイメージを最新にしてみます。やることは簡単で、作業用のディレクトリに ''Docker'' ファイルを置いて、そのディレクトリで
$ docker build -t michinobumaeda/firebase-tools .
$ docker login
$ docker push michinobumaeda/firebase-tools
とコマンドをたたくだけです。ただし "latest" だけでなく旧バージョンを残したい場合はタグを指定してください。
Tag: windows docker wsl