Ich verwende Rancher
als Orchestrierung Werkzeug. Ich habe einen einzigen Knoten Cassandra
in einem Container installiert und möchte ihn neu starten, weil ich vor kurzem einige Änderungen in der Konfigurationsdatei (cassandra.yaml
) vorgenommen habe. Es gibt bereits Daten in der Datenbank, also möchte ich Datenverlust verhindern. Ich benutze usman/docker-rancher-cassandra:3.1
Bild. Welcher Befehl sollte dies tun?Docker Container Neustart ohne Datenverlust
Antwort
Das Neustarten eines Containers wirkt sich nicht auf Ihre Daten im Container aus. Wenn Sie versuchen, den Container mit dem neuen Image neu zu erstellen, können Sie die Daten verlieren.
Wenn Sie Volumes verwenden, werden Ihre Daten im Host beibehalten. Es hängt davon ab, wie Sie Ihren Container gestartet haben. Sie können die Volume-Informationen von docker inspect <container_name>
überprüfen.
Durch die dockerfile, die Sie verwenden, ist das Cassandra-Datenverzeichnis ein Volume.
VOLUME /var/lib/cassandra
Wenn Sie explizit
docker run -d -v <HOST_PATH>:/var/lib/cassandra usman/docker-rancher-cassandra:3.1
Dann können Sie den Behälter mit der neuen Version ein Upgrade mit Ihrem Behältervolumen montiert. Andernfalls müssen Sie die Daten vor dem erneuten Erstellen des Containers aus dem Verzeichnis kopieren.
soution 1:
Starten Sie eine andere Behälter aus den Bänden von vorhandenen Container.
docker stop cassandra
docker run -it --volumes-from cassandra \
--name="cassandra-new" \
usman/docker-rancher-cassandra:3.1
Wenn alles gut funktioniert, entfernen Sie den vorherigen Behälter und benennen Sie den Behälter
docker rm cassandra
docker rename cassandra-new cassandra
LÖSUNG 2:
Sie die Daten aus /var/lib/docker/volumes/531419fb27d1dff9c5371769edc08d6160f71061c9fe3af05309a3a0c51bb84d/_data
einige kopieren anderes Verzeichnis vor dem Neuerstellen des Containers. Sie müssen das Verzeichnis montieren, während die neuen Container
docker run -v <HOST_PATH>:/var/lib/cassandra
Gibt es eine Methode zum Exportieren von Daten aus dem Behälter und nach dem Neustart Import unter Verwendung von Ausgang es? Ich habe es nicht explizit installiert. – plaidshirt
@KovacsAkos, aktualisierte Antwort, um Ihre Daten aus dem Container wiederherzustellen. – Gangaraju