Ich bin auf der Suche nach einem einfachen Lernprogramm zum Testen der Containermigration zwischen zwei VMs. Ich habe einige Videos gesehen, aber sie zeigen nicht genau, wie sie das gemacht haben oder haben selbst kein gutes Tutorial gefunden. Ich bin neu in Docker, also wollte ich nur testen, wie diese Migration funktioniert. Also, es wird sehr nett sein, dass Sie mir einige Tutorials/Links geben können, die klar erklären, wie es geht. Ihre Hilfe wird wirklich geschätzt, danke :)Containermigration in Docker
Antwort
Um Bilder zu exportieren, verwenden Sie docker save
, um sie wieder zu importieren, verwenden Sie docker load
.
Container zu exportieren, verwenden docker export
, um sie wieder zu importieren (AS IMAGE ohne Metadaten), docker import
verwenden.
Sie können mehr über die Befehle und deren Verwendung mit docker COMMAND --help
erfahren.
Leider können Sie laufende Container nicht migrieren, daher empfehle ich Ihnen, die docker run
Befehle notieren, die Sie verwendet haben, um die Container zu starten und dann auf dem anderen Knoten erneut zu starten.
Sie können eine containet Export von
docker export <container-name> -o container.tar
läuft dann können Sie den Teer in eine andere VM kopieren und importieren von
docker import container.tar <image-name>
WARNINIG läuft:
Der Export Exportierte Volumes werden nicht als Teil des Tarballs exportiert. Überprüfen Sie die documentation für weitere Informationen.
Wenn Sie ein Volumen haben, und Sie wollen, dass es auf die neue VM migrieren, überprüfen How to port data-only volumes from one host to another?
Sie Kontrollpunkt verwenden können/Restore-Tools wie CRIU. https://criu.org/Live_migration Sie müssen alle Prozesse und den Speicherstatus Ihres Containers prüfen, bevor Sie ihn auf einen anderen Host migrieren. Im Empfänger-Host müssen Sie den gleichen Container erstellen und dann den von Ihnen übertragenen Prüfpunkt wiederherstellen. diese Besuche:
https://circleci.com/blog/checkpoint-and-restore-docker-container-with-criu/
https://forums.docker.com/t/docker-checkpoint-restore-on-another-host/27427/3
Ich unterstütze wirklich Antwort des Farhood. Ich möchte hier ausführlich schreiben. Am Anfang unterstützt Docker "Checkpoint und Restore" eines Contianers, dank der CRIU-Integration mit Docker. Aber es ist in der experimentelle Modus so vorsichtig sein.
Was ist CRIU? CRIU ist ein Software-Tool für das Linux-Betriebssystem. Mit diesem Tool können Sie eine laufende Anwendung (oder einen Teil davon) einfrieren und sie als eine Sammlung von Dateien auf der Festplatte prüfen. Sie können dann die Dateien verwenden, um die Anwendung wiederherzustellen und sie genau so auszuführen, wie sie während der Zeit des Einfrierens war.
Anwendung von Checkpoint/Restore
Mit diesem können Sie eine Anwendung Checkpoint und die Dateien kopieren (von Checkpoint) auf dem Zielcomputer und starten Sie die Anwendung, die Dateien mit der als bekannt Live-Migration,
Sie können einen Kontrollpunkt einer Anwendung übernehmen und die Anwendung in den vorherigen Zustand wiederherzustellen, die nichts anderes als die Snapshot-Erstellung ist.
"Checkpointing and restoring" kann beim Debuggen einer Anwendung verwendet werden. Alle Prozesse der Anwendung werden kurz vor einem Fehler überprüft und später (möglicherweise auf einem einzelnen Host) für debugging neu gestartet.
Bootzeit optimieren: Überprüfen Sie den Startvorgang eines Betriebssystems, und beim nächsten Mal kann dieser Prüfpunkt zum Starten eines Betriebssystems verwendet werden.
Derzeit CRIU ist das einzige Werkzeug zur Verfügung, um einen Checkpoint und einen Container wiederherzustellen. Ich zeige Ihnen einfache Schritte für die obige Operation.
Schritt 1: Aktivieren Sie experimentelle Funktionen (inkl. CRIU).
echo "{\"experimental\": true}" >> /etc/docker/daemon.json
systemctl restart docker
Schritt 2: Lasst uns einen einfachen Behälter bereitstellen, die Zahlen zu drucken.
docker run -d --name looper --security-opt seccomp:unconfined busybox \
/bin/sh -c 'i=0; while true; do echo $i; i=$(expr $i + 1); sleep 1; done'
Schritt 3: Lassen Sie uns überprüfen die Anwendung ausgeführt wird, indem die Protokolle zu drucken.
docker logs looper
Schritt 4: Lassen Sie uns Kontrollpunkt dieser Behälter mit dem folgenden Befehl Docker
. Der Name des Checkpoints ist "checkpoint1". Wir werden diesen Namen verwenden, um den Container wiederherzustellen.
docker checkpoint create looper checkpoint1
Schritt 4: Sie können den Kontrollpunkt im Verzeichnis überprüfen.
/var/lib/docker/containers/<container-ID>/checkpoints/<checkpoint name>/
Schritt 5: Lassen Sie uns den Behälter in den vorherigen Zustand mit dem folgenden Befehl Docker
wiederherzustellen.
docker start --checkpoint checkpoint1 looper
Schritt 6: Wie überprüfen? Drucken Sie die Protokolle des Containers vor und nach dem Schritt 5.
(Containermigration) Wie Wiederherstellen des Containers in verschiedenen VM? Die Lösung besteht darin, die Checkpoint-Dateien (des Containers) auf den Zielknoten zu kopieren und sie zum Wiederherstellen des Containers zu verwenden. Auf dem Zielknoten sollte Docker im experimentellen Modus ausgeführt werden.
Ich füge hiermit eine aktuelle Papier auf Docker Container Migration. Sie suchen nach diesem Papier.
- 1. Können Docker in Docker
- 2. Docker-Container-Netzwerk mit Docker-in-Docker
- 3. CI & Docker-in-a-Docker
- 4. Docker exec in Docker Fenster
- 5. Docker Befehl in Docker Container
- 6. Docker in Docker Berechtigungen Fehler
- 7. Docker in Docker Verbindung Fehler
- 8. Einstellung unsicher Registrierung in Docker-in-Docker Bild Docker Daemon
- 9. Kombinieren von cloudbees ec2 docker image mit docker in docker
- 10. docker: Konvertieren von docker Befehl in docker-komponieren Syntax
- 11. Docker in Docker (DND) startet nicht
- 12. docker-in-docker auf dc/os zulassen?
- 13. Docker Fehlerbild mit Docker Behältern in scala
- 14. docker set iptables-Optionen in docker-compose.yml
- 15. Entsprechung von docker-compose.yml in Docker Cloud
- 16. Docker-Anmeldeinformationen in Docker-Konfiguration speichern
- 17. Mehrere Datenbanken in Docker und Docker-komponieren
- 18. Docker in einem Docker-Container ausführen?
- 19. Docker im Docker Container
- 20. Anfänger Docker Docker-komponieren
- 21. Bildname, Containername in Docker Syslog Tag in Docker-Compose
- 22. Docker Client an Docker Daemon
- 23. Gitlab run docker im docker
- 24. Docker docker-composer.yml Volume-Ausgabe
- 25. php docker link apache docker
- 26. Wie werden Docker-Befehle als Nicht-Root-Benutzer in Docker in Docker ausgeführt?
- 27. Jenkins Docker Pipelining innerhalb Docker
- 28. Networking Setup in Docker
- 29. Port-Zuordnung in Docker
- 30. Microsoft Compiler in Docker
Können Sie mehr darüber klar werden, was Sie unter „Migration“ verstehen? – jonasheinisch
@jonasheinisch Senden eines Containers von einer virtuellen Maschine an eine andere virtuelle Maschine. –