
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
私はこうして解決しました
- サービス docker 停止
- /var/run/docker に移動し、コンテナ ID に関連するディレクトリをすべて削除します。
- /var/lib/docker に移動し、コンテナ ID に関連するディレクトリをすべて削除します。
- サービス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
システムが再び稼働しました。