
Ich verwende Docker 1.12.6 auf AWS Linux.
Alle docker
Befehle bleiben hängen.
Die AWS-Instanz ist heute Morgen abgestürzt (ich weiß immer noch nicht, warum). Der Neustart hat nicht funktioniert, also habe ich die Instanz angehalten und neu gestartet. Beim Anzeigen /var/log/docker
erhalte ich:
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"
Das Containerverzeichnis existiert, enthält aber nur ein leeres init
Verzeichnis. Eine zufällige Suche in den anderen Containern zeigt dasselbe.
Ich nehme an, dass das Hängenbleiben durch eine fehlende Datei verursacht wird. Wie kann ich es wiederherstellen?
Bearbeiten:
Habe es schließlich entfernt und neu installiert und die Meldung erhalten:
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Docker-Dienst gestartet, jetzt hängt er wieder.
Antwort1
Ich habe mein Problem gelöst, indem ich
- Dienst Docker Stopp
- Gehen Sie zu /var/run/docker und löschen Sie alle Verzeichnisse, die mit der Container-ID in Zusammenhang stehen.
- Gehen Sie zu /var/lib/docker und löschen Sie alle Verzeichnisse, die mit der Container-ID in Zusammenhang stehen.
- Dienst Docker starten
Antwort2
Die Antwort von @Moreno hat bei mir mit einer kleinen Abwandlung funktioniert:
Stoppen Sie den Docker-Daemon (
sudo service docker stop
)Löschen Sie die Ordner in containerd (nur zur Sicherheit, wir haben auch die Ordner mit dem gleichen Namen direkt in libconteinerd gelöscht (/var/run/docker/libcontainerd/containerd))
Starten Sie den Docker-Daemon
Antwort3
Ich bin auf dasselbe Problem gestoßen. Nachdem ich ziemlich viel Zeit damit verbracht hatte, musste ich auf ältere AMIs zurückgreifen, die funktionieren, bis ich eine Lösung dafür gefunden habe. Der neueste ECS-Agent (1.13.1) wurde vor ein paar Tagen veröffentlicht – ich frage mich, ob dies unser Problem sein könnte.
Überblick:
Docker 1.12.6
ECS Agent 1.13.1
Beim Booten der Instanz bleiben alle docker
Befehle hängen. Die Überprüfung /var/log/docker
zeigt:
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"
Dasselbe Problem, wenn libcontainerd
ein leeres init
Verzeichnis enthalten ist (nicht state.json
zu sehen!)
Antwort4
Habe das gleiche Problem. Die Instanz ist abgestürzt (unbekannter Grund). Docker und ECS-Agent. Eine Neuinstallation von Docker hat nicht geholfen.
Was bei uns funktioniert hat:
- Docker manuell beenden (PID beenden)
- Löschen Sie die Ordner in containerd (nur zur Sicherheit, wir haben auch die Ordner mit dem gleichen Namen direkt in libconteinerd gelöscht (/var/run/docker/libcontainerd/containerd))
- Docker neu starten
- Starten Sie ecs
Hier zu sehen: https://github.com/docker/docker/issues/30984
Das System läuft wieder.