AWSLinuxでDocker1.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サービスを開始しましたが、再びハングしています。
私はによって私の解決しました
@Morenoの答えは少しひねりを加えて私のために働いた:
dockerデーモンを停止します(Sudo service docker stop
)
Containerd内のフォルダーを削除します(念のため、libconteinerd(/ var/run/docker/libcontainerd/containerd)内の同じ名前のフォルダーも直接削除しました)
dockerデーモンを起動します
私は同じ問題に遭遇しました。これにかなりの時間を費やした後、私はこれに対する解決策を見つけるまで機能する古い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
は表示されません!)