So stellen Sie Docker-Container nach dem Snap-Remove-Docker wieder her

So stellen Sie Docker-Container nach dem Snap-Remove-Docker wieder her

Ich habe Docker mit entfernt sudo snap remove docker. Eigentlich wollte ich es gar nicht entfernen, sondern habe nur überprüft, ob ich es mit installiert hatte snap(hätte im Nachhinein verwenden sollen ), und darauf vertraut, dass es mich mit „ does“ snap listdazu auffordert . Aber es hat einfach weitergemacht und Docker entfernt. Gut. Die Neuinstallation ging schnell.[Y/n]apt

Aber wo sind meine Container?! Alle Bilder und Container (docker ps -a)waren weg! Die Deinstallation hat lange gedauert, daher frage ich mich, ob es ein Backup gibt oder die Dateien noch vorhanden sind und die Container wiederhergestellt werden können. Die Bilder sind mir egal, nur die Container. Danke.

Überprüft /var/snap/docker/common/var-lib-docker/containers, aber die Originalbehälter sind nicht vorhanden.

Antwort1

Es stellte sich heraus, dass der Vorgang, der lange dauerte, tatsächlich ein Backup oder, in ihrer Terminologie, ein Snapshot war. Von derDokumentation:

Snapshots werden manuell mit dem Befehl „snap save“ und automatisch beim Entfernen eines Snaps generiert (erfordert Snapd 2.39+). Mit einem Snapshot können Sie den Zustand Ihrer Snaps sichern, Snaps auf einen früheren Zustand zurücksetzen und eine neue Snapd-Installation auf einen zuvor gespeicherten Zustand zurücksetzen.

Ich habe meine snapdVersion überprüft:

# snap --version
snap    2.52.1
snapd   2.52.1
series  16
ubuntu  21.04
kernel  5.11.0-40-generic

Dann habe ich gesehen, welche Schnappschüsse verfügbar waren:

# snap saved
Set  Snap    Age    Version  Rev   Size    Notes
1    docker  2h58m  20.10.8  1125  1.39GB  auto

Überprüfte, ob der Schnappschuss in Ordnung war:

# snap check-snapshot 1
Snapshot #1 verified successfully.

Abschließend wurde der automatische Snapshot wiederhergestellt:

# snap restore 1
Restored snapshot #1.

An diesem Punkt docker ps -awurden mir immer noch die Container angezeigt, die ich nach der letzten Installation erstellt habe, und nicht die, die ich wiederherstellen wollte. Vielleicht würde es einfach funktionieren, wenn ich keine neuen Container erstellt hätte. Aber ich weiß, dass zumindest die Containerdateien wiederhergestellt wurden, weil ich sie unter finden kann /var/snap/docker/common/var-lib-docker/overlay2/. Das ist besser als nichts. Seien Sie vorsichtig mit snap remove!

Wiederherstellen der Originalcontainer

Lassen Sie mich zusammenfassen, wie ich in diesen Zustand geraten bin:

  • lief sudo snap remove docker, wodurch wichtige Container vernichtet wurden
  • lief sudo snap install docker, um Docker erneut zu installieren
  • lief docker-compose up, was zwei neue Container hervorbrachte
  • ausgeführt snap restore 1, um den automatischen Snapshot wiederherzustellen

An diesem Punkt konnte ich die wiederhergestellten Containerdateien finden, aber docker ps -adie tatsächlichen Container wurden immer noch nicht angezeigt. Zusammenfassend habe ich Folgendes getan, um die vollständigen Container zurückzubekommen:

  • alle sichtbaren Container und Bilder nach der zweiten Installation entfernt, da ich sie nicht benötigte
  • habe Docker erneut entfernt sudo snap remove dockerund bemerkt, dass der automatische Snapshot erneut ausgeführt wird:„Daten von Snap „Docker“ im automatischen Snapshot-Set Nr. 2 speichern“.
  • den ersten Snapshot nochmal wiederhergestellt:snap restore 1

Wenn ich das jetzt mache, docker ps -akann ich alle meine Container wieder sehen, im gestoppten Zustand! Es gibt jedoch ein Problem, einer von ihnen startet nicht, mit der Meldung: Error: response from daemon: OCI runtime create failed: container with id exists:....

Um dies zu umgehen, war der einfachste Weg, den ich fand, docker commit <container-id>das resultierende Image zu verwenden, um es als neuen Container zu starten. Nachdem ich sah, dass es in Ordnung war, habe ich das defekte entfernt. Alles wieder normal!

Übrigens gilt es als gute Praxis, Volumes zu verwenden, um Daten in Containern zu speichern. Bilder können auchGerettetin ein Archiv.

verwandte Informationen