Checkpointing
Checkpoints funktionieren derzeit nur mit Root-Containern. Daher müssen Sie
den Beispiel-Container als Root ausführen. Anstatt jeden Befehl mit
sudo
zu prefixen, können Sie auch vorher mit sudo -i
zum Root-Benutzer wechseln.
sudo podman run -dt -p 8080:80/tcp docker.io/library/httpd
sudo podman ps
Container checkpointen
Das Checkpointing eines Containers stoppt den Container und schreibt dabei den Zustand aller Prozesse im Container auf die Festplatte. Damit kann ein Container später wiederhergestellt werden und genau zum selben Zeitpunkt wie beim Checkpoint weiterlaufen. Diese Funktion erfordert CRIU 3.11 oder neuer, das auf dem System installiert ist.
Um den Container zu checkpointen verwenden Sie:
sudo podman container checkpoint <container_id>
Container wiederherstellen
Die Wiederherstellung eines Containers ist nur von einem zuvor gecheckpointeten Container möglich. Der wiederhergestellte Container wird genau zum selben Zeitpunkt weiterlaufen, zu dem er gecheckpointet wurde.
Um den Container wiederherzustellen verwenden Sie:
sudo podman container restore <container_id>
Nach der Wiederherstellung wird der Container wieder auf Anfragen antworten, wie er es vor dem Checkpointing getan hat.
curl http://<IP_address>:8080
Container migrieren
Um einen Container live von einem Host zu einem anderen zu migrieren, wird der Container auf dem Quellsystem der Migration gecheckpointet, zum Zielsystem übertragen und dann auf dem Zielsystem wiederhergestellt. Bei der Übertragung des Checkpoints ist es möglich, eine Ausgabedatei anzugeben.
Auf dem Quellsystem:
sudo podman container checkpoint <container_id> -e /tmp/checkpoint.tar.zst
scp /tmp/checkpoint.tar.zst <destination_system>:/tmp
Auf dem Zielsystem:
sudo podman container restore -i /tmp/checkpoint.tar.zst
Nach der Wiederherstellung wird der Container wieder auf Anfragen antworten, wie er es vor dem Checkpointing getan hat. Dieses Mal wird der Container auf dem Zielsystem weiterlaufen.
curl http://<IP_address>:8080