aptでDocker更新時にエラー

自宅サーバーのメンテナンス作業をしていたら、以下のエラーに遭遇しました。

# apt upgrade
(中略)
docker-ce (17.09.0~ce-0~ubuntu) を設定しています ...
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
invoke-rc.d: initscript docker, action "start" failed.
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since 日 2017-10-15 15:27:25 JST; 31ms ago
     Docs: https://docs.docker.com
  Process: 15537 ExecStart=/usr/bin/dockerd -H fd:// (code=exited, status=1/FAILURE)
 Main PID: 15537 (code=exited, status=1/FAILURE)

10月 15 15:27:25 luka.home systemd[1]: Failed to start Docker Application Container Engine.
10月 15 15:27:25 luka.home systemd[1]: docker.service: Unit entered failed state.
10月 15 15:27:25 luka.home systemd[1]: docker.service: Failed with result 'exit-code'.
dpkg: パッケージ docker-ce の処理中にエラーが発生しました (--configure):
 サブプロセス インストール済みの post-installation スクリプト はエラー終了ステータス 1 を返しました
処理中にエラーが発生しました:

どうやら、Docker起動時にホストを指定する項目が/etc/docker/daemon.jsonと/lib/systemd/system/docker.serviceの両方で指定されていたため、重複してエラーになっていたようです。

※2017年12月17日追記

Dockerデーモンのエラーの確認はこのコマンドで行うと良さそうです。

$ sudo journalctl -r -u docker.service

私の環境ではswarm modeでクラスタを組んでいるため、エラー文にもある ExecStart=/usr/bin/dockerd -H fd:// の部分は必要ありません。

/lib/systemd/system/docker.service を編集して、

ExecStart=/usr/bin/dockerd -H fd://

ExecStart=/usr/bin/dockerd

に書き換えを行い apt upgrade を実行したところ、エラーは解消されました。

fd:// オプションを保持したい場合は、 /etc/docker/daemon.json に設定を行う形になりそうです。


Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/html/wp-includes/class-wp-comment-query.php on line 405

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です