dockerデーモンが予期せず終了します

Dec 01 2020

Dockerは明白な理由もなく終了し、私は何が起こったのかを理解しようとしています。

現在、dockerデーモンはロードされたサービスであり、終了ステータス0SUCCESSで非アクティブです。

$ systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Tue 2020-12-01 06:25:16 UTC;
     Docs: https://docs.docker.com
 Main PID: 2218 (code=exited, status=0/SUCCESS)

Dockerログを見ると、これはシグナル「終了」を処理したために発生しました。

$ journalctl -u docker.service | tail -25
Nov 30 18:30:21 ip-10-38-4-210 dockerd[2218]: time="2020-11-30T18:30:21.728694550Z" <redacted irrelevant>
Dec 01 06:25:05 ip-10-38-4-210 systemd[1]: Stopping Docker Application Container Engine...
Dec 01 06:25:05 ip-10-38-4-210 dockerd[2218]: time="2020-12-01T06:25:05.867748396Z" level=info msg="Processing signal 'terminated'"
Dec 01 06:25:16 ip-10-38-4-210 systemd[1]: Stopped Docker Application Container Engine.

その時点では、そのホストにログインしているユーザーはなく、Dockerデーモンを明示的に終了したユーザーもいませんでした。

  • なぜこれが起こっているのですか、どのログが手がかりを提供できますか?
  • 終了時に自動的に再起動するようにdockerdを構成できますか?

これは、x86-64上のUbuntu 16.04.6 LTS上のDockerバージョン18.09.7(ビルド2d0083d)です。

systemdとの関係はUnix.stackexchangeでここで尋ねられています

回答

2 BMitch Dec 01 2020 at 20:17
Dec 01 06:25:05 ip-10-38-4-210 systemd[1]: Stopping Docker Application Container Engine...

この時点で、systemdはdockerに停止要求を送信しました。

Dec 01 06:25:05 ip-10-38-4-210 dockerd[2218]: time="2020-12-01T06:25:05.867748396Z" level=info msg="Processing signal 'terminated'"

Dockerはその停止要求を受け取り、正常に終了します。

Dec 01 06:25:16 ip-10-38-4-210 systemd[1]: Stopped Docker Application Container Engine.

Systemdは、停止が終了したことを報告します。10秒は、docker container stopコマンドを適切に処理せず、10秒後に強制終了され、さらに1秒後に要求の処理を終了したコンテナーからのものである可能性があります。

したがって、提供されたログから、dockerdデーモンは要求どおりに機能しており、systemctl stop dockerコマンドを送信したものを確認する必要があります。

終了時に自動的に再起動するようにdockerdを構成できますか?

dockerdはsystemdを制御せず、systemdはdockerdを制御するため、systemd側から問題を解決する必要があります。


この特定のケースでは、dockerサービスを停止するようにsystemdに指示しているのは、Ubuntuバージョンのcontainerdパッケージの更新を適用するUbuntu無人更新サービスのようです。

https://bugs.launchpad.net/ubuntu/+source/containerd/+bug/1870514

私が推奨する修正は、この問題が発生していないように見えるアップストリームのDockerリポジトリからdockerをインストールすることです。

https://docs.docker.com/engine/install/ubuntu/