追記(2020/08/24)
皆様、LGMTやストックありがとうございます。
最近こちらの記事を見てくださる方が増えていらっしゃるので念の為追記いたしますが、こちらの記事はWSL1を対象とした記事になります。
WSL2では挙動が変わっている可能性がございますのでご注意ください。
概要
初投稿です。
拙い部分はご容赦を
今までDockerを動かす際は、仮想マシン上やDocker for Windowsを利用していたのですが、LinuxネイティブのでDockerに移行することにした。
その際に躓いたことをまとめる。
とりあえずインストール
まずは以下の記事を参考にWSLにDockerをインストールしていく。
ここまではとっても簡単でインストールは終了。
参考:WSL上でDocker Engineが動くようになっていたっぽいという話
Docker Daemonを起動
先程紹介した記事を参考にDaemonを起動
$ sudo cgroupfs-mount
$ sudo service docker start
* Docker is running
よしよし起動したなと思ったのですがここで問題が
そのままの流れでhello-worldを表示してみると
$ sudo docker run hello-world
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.
なぜかデーモンが起動していない
そこでstatusをチェックする
$ sudo service docker status
* Docker is not running
起動していないぞ?
ここから何度もsudo service docker start
を叩いても起動せず困った。
原因
Docker for WindowsをWSLから呼び出せるようにしていたため
まず、自分はもともとDocker for WindowsをWSLから呼び出して使っていた。
どうやらその辺りの設定が悪さをしていたようだ。
もともとのDockerの環境構築方法はこちら
(こちらの環境でも特に不便はしていませんでしたが、個人的な趣味で移行を始めた次第です)
参考:Docker for Windowsで快適な環境を得るまでの そこそこ長い闘い
Docker for WindowsのExpose daemon on tcp://localhost:2375 without TLS
のチェックを外す必要があった。
すると無事、Docker Daemonの起動に成功した。
まとめ
もし、似たような状態の方の助けになれば幸いです。
また、引用させていただいた2つの記事はWSLでDockerライフを送るためにはどちらも良い記事だと思います。
これらの記事を読んで、もっとWSLが普及するといいな