Docker CEのインストールとトラブルシューティングについて
Dockerでドカドカしています。この記事はなにかの Advent Calendar 2018 - Adventar用に書いたメモです。
とある案件でCentOS 7.5にdocker-ceをインストールしました。
手順
↓これ見てやるだけです。
CentOS 用 Docker CE の入手 — Docker-docs-ja 17.06.Beta ドキュメント
トラブル
インストールを終えて以下のように起動しようとしたところエラーが出ました。
sudo systemctl start docker
いつもどおり sudo journalctl -xe -u docker
でエラーの中身を覗いてみます。
-- Unit docker.service has begun starting up.
12月 18 00:34:51 redmine systemd[1]: Failed to reset devices.list on /system.slice/containerd.service: Operation not perm
12月 18 00:34:51 redmine systemd[1]: Starting containerd container runtime...
-- Subject: Unit containerd.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit containerd.service has begun starting up.
12月 18 00:34:51 redmine systemd[1]: containerd.service: control process exited, code=exited status=1
12月 18 00:34:51 redmine systemd[1]: Failed to start containerd container runtime.
-- Subject: Unit containerd.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit containerd.service has failed.
-- The result is failed.
12月 18 00:34:51 redmine systemd[1]: Dependency failed for Docker Application Container Engine.
-- Subject: Unit docker.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit docker.service has failed.
--
-- The result is dependency.
12月 18 00:34:51 redmine systemd[1]: Job docker.service/start failed with result 'dependency'.
12月 18 00:34:51 redmine systemd[1]: Unit containerd.service entered failed state.
12月 18 00:34:51 redmine systemd[1]: containerd.service failed.
12月 18 00:34:51 redmine sudo[1117]: pam_unix(sudo:session): session closed for user root
12月 18 00:34:51 redmine systemd[1]: Stopped Docker Application Container Engine.
-- Subject: Unit docker.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
なんも分からん(´・ω・`)
とにかくGoogle先生に英語で聞いてみたところGitHubのIssueにそれらしきものを発見しました。
18.09: containerd depends on overlay · Issue #475 · docker/for-linux
この中にある以下の書き込みを参考にしたところ上手くDockerが起動しました。
https://github.com/docker/for-linux/issues/475#issuecomment-437373774
以下は作業の手順です。
1.containerdのserviceファイルを編集します。
sudo systemctl edit containerd.service
ファイルの内容
[Service]
ExecStartPre=
2.serviceファイルの再読込とcontainerdの再起動を行います。
sudo systemctl daemon-reload
sudo systemctl restart containerd.service
3.dockerが立ち上がるか確認します
sudo systemctl start docker
この解決方法は本質的ではないにしろ、解決できているので一時的な対処として問題ないかと思います。