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

この解決方法は本質的ではないにしろ、解決できているので一時的な対処として問題ないかと思います。