⛳
WSL2で急にdockerが起動しなくなった
開発環境
- windows 10 Enterprice
- docker
- ubuntu
WSL2で急にdockerが起動しなくなった
ある日windowsをアップデートした際にdokcerk起動しようとしたが、起動しなくなった
$ sudo service docker start
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xeu docker.service" for details.
メッセージに従い systemctl status docker.service
コマンドを打つも特にヒントを得られず
原因
- docker実行中のプロセスに関する情報が格納された「pidファイル」が意図せず残っているせいで上手く起動できなかった。
- dockerデーモンが起動時にタイムアウトしてしまっていた
色々調べてとりあえずdockerデーモンでデバッグ情報を出してみると
$ sudo dockerd --debug
INFO Starting up
failed to start daemon, ensure docker is not running or delete /var/run/docker.pid: process with PID 5891 is still running
上記エラーに従い下記実行
$ sudo rm /var/run/docker.pid
pidファイルを削除が変わらずエラー
$ sudo service docker start
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xeu docker.service" for details.
再度dockerデーモンでデバッグ情報を出力すると、エラーメッセージが変わりデーモン起動の際にタイムアウトしていた
$ sudo dockerd --debug
...割愛
failed to start daemon: error while opening volume store metadata database (/var/lib/docker/volumes/metadata.db): timeout
そこで上記stackoverflowを参考にdockerのプロセスとコンテナを強制終了する
$ ps axf | grep docker | grep -v grep | awk '{print "kill -9 " $1}' | sudo sh
すると無事dockerが起動することに成功
$ sudo service docker start
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xeu docker.service" for details.
おわりに
多分ですが、docker起動中に変なタイミングで再起動等を行った結果、前回のプロセス等が残ってしまい
整合性が取れなくてタイムアウトしてしまったぽいです。
とりあえず動いてくれてよかった
Discussion