Docker デーモンがハングしています - コンテナ状態ファイルがありませんか?

Docker デーモンがハングしています - コンテナ状態ファイルがありませんか?

AWS Linux 上で Docker 1.12.6 を実行しています。

すべてのdockerコマンドがハングします。

AWS インスタンスが今朝クラッシュしました (まだ理由はわかりません)。再起動してもうまくいかなかったので、インスタンスを停止して起動しました。表示すると、次の/var/log/dockerようになります:

time="2017-01-16T10:46:18.829402768Z" level=info msg="libcontainerd: new containerd process, pid: 21697" 
time="2017-01-16T10:46:18.833508272Z" level=fatal msg="open /var/run/docker/libcontainerd/containerd/054f92393f757e0418b014ed1fa35673fbce2293de43e42153f4e10ec4910c77/state.json: no such file or directory"

コンテナ ディレクトリは存在しますが、空のinitディレクトリのみが含まれています。他のコンテナをランダムに検索しても同じ結果が表示されます。

ファイルが見つからないことがハングアップの原因だと思います。どうすれば回復できますか?

編集:

結局削除して再インストールしたところ、次のメッセージが表示されました:

Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Docker サービスを開始しましたが、再びハングしています。

答え1

私はこうして解決しました

  1. サービス docker 停止
  2. /var/run/docker に移動し、コンテナ ID に関連するディレクトリをすべて削除します。
  3. /var/lib/docker に移動し、コンテナ ID に関連するディレクトリをすべて削除します。
  4. サービスdocker開始

答え2

@Moreno の回答は、ちょっとした工夫で私にとってはうまくいきました:

  • dockerデーモンを停止します(sudo service docker stop

  • containerd 内のフォルダを削除します (念のため、libconteinerd (/var/run/docker/libcontainerd/containerd) 内の同じ名前のフォルダも直接削除しました)

  • dockerデーモンを起動する

答え3

私も同じ問題に遭遇しました。これにかなりの時間を費やした後、解決策が見つかるまで、機能する古い AMI にロールバックする必要がありました。最新の ECS エージェント (1.13.1) は数日前にリリースされましたが、これが問題なのかどうか疑問に思っています。

概要:

  • Docker 1.12.6
  • ECS Agent 1.13.1

インスタンスの起動時に、すべてのdockerコマンドがハングします。確認すると/var/log/docker次のようになります:

level=info msg="libcontainerd: new containerd process, pid: 21687" 
level=fatal msg="open /var/run/docker/libcontainerd/containerd/{{CONTAINER_HASH}}/state.json: no such file or directory"

libcontainerd空のディレクトリが含まれている場合も同じ問題が発生しますinit(state.json表示されません)

答え4

同じ問題が発生しました。インスタンスがクラッシュしました (理由は不明)。Docker と ECS エージェント。Docker を再インストールしても解決しませんでした。

私たちにとって効果的だったこと:

  • docker を手動で終了する (kill pid)
  • containerd 内のフォルダを削除します (念のため、libconteinerd (/var/run/docker/libcontainerd/containerd) 内の同じ名前のフォルダも直接削除しました)
  • dockerを再起動する
  • ecsを開始

ここで見られるもの: 参考: https://github.com/docker/docker/issues/30984

システムが再び稼働しました。

関連情報