PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie stellt man Daten aus einem gelöschten Docker-Container wieder her? Wie kann ich es wieder mit den Daten verbinden?

Genau aus diesem Grund registriere ich beim Erstellen eines Datencontainers immer seinen Pfad in einer Datei. (siehe mein Skript updateDataContainerPath )

Verwendung (sollte direkt nach dem Erstellen eines Datencontainers verwendet werden):

docker inspect ${gitolite_repos_cont} > /dev/null 2>&1 || docker create --name="${gitolite_repos_cont}" gitolite.repos /bin/true

# source the script, to make the updatePath() function available
. ../updateDataContainerPath

# save the path in a file
updatePath ${gitolite_repos_cont} "$HOME/b2d/gitolite" ${grepos}

(hier ${grepos} ist die Datei, in der Sie den Pfad des Datenträgers des Datencontainers registrieren oder speichern)

Dieses Skript wird es tun, wenn es bereits vorhanden war einen für diesen Datencontainer gespeicherten Pfad, entfernen Sie den leeren Datencontainerordner und verschieben Sie den alten in den neuen (und aktualisieren Sie den neuen Pfad)

sudo rm -Rf "${grpath}"
sudo mv "${fgrpath}" "${grpath}"

Das würde helfen, Ihre Frage 2 zu beantworten, und Ihre Frage 1 vollständig vermeiden.

Auf diese Weise kann ich jeden Container rmen (einschließlich eines Datencontainers, ohne das -v Option natürlich), und ich weiß, wenn ich denselben Datencontainer das nächste Mal neu erstelle, werde ich meine Daten wiederfinden.