Docker
Kontrollpunkt und Wiederherstellungscontainer
Suche…
Docker mit Checkpoint und Wiederherstellung (Ubuntu) kompilieren
Um Docker zu kompilieren, wird empfohlen, dass Sie mindestens 2 GB RAM haben . Trotzdem fällt es manchmal aus, so dass es besser ist, stattdessen 4 GB zu verwenden.
Stellen Sie sicher, dass git und make installiert sind
sudo apt-get install make git-core -y
Installieren Sie einen neuen Kernel (mindestens 4.2)
sudo apt-get install linux-generic-lts-xenial
Starten Sie den Computer neu, um den neuen Kernel zu aktivieren
sudo reboot
kompiliere
criu
das benötigt wird, um dendocker checkpoint
auszuführensudo apt-get install libprotobuf-dev libprotobuf-c0-dev protobuf-c-compiler protobuf-compiler python-protobuf libnl-3-dev libcap-dev -y wget http://download.openvz.org/criu/criu-2.4.tar.bz2 -O - | tar -xj cd criu-2.4 make make install-lib make install-criu
Prüfen Sie, ob alle Anforderungen erfüllt sind, um criu auszuführen
sudo criu check
experimentelles Docker kompilieren (wir benötigen Docker, um Docker zu kompilieren)
cd ~ wget -qO- https://get.docker.com/ | sh sudo usermod -aG docker $(whoami)
An diesem Punkt müssen wir uns abmelden und erneut anmelden, um einen Docker-Daemon zu haben. Nach dem relog fahren Sie mit dem Kompilierungsschritt fort
git clone https://github.com/boucher/docker cd docker git checkout docker-checkpoint-restore make #that will take some time - drink a coffee DOCKER_EXPERIMENTAL=1 make binary
Wir haben jetzt ein kompiliertes Docker. Lässt die Binärdateien verschieben. Stellen Sie sicher, dass Sie
<version>
durch die installierte Version ersetzensudo service docker stop sudo cp $(which docker) $(which docker)_ ; sudo cp ./bundles/latest/binary-client/docker-<version>-dev $(which docker) sudo cp $(which docker-containerd) $(which docker-containerd)_ ; sudo cp ./bundles/latest/binary-daemon/docker-containerd $(which docker-containerd) sudo cp $(which docker-containerd-ctr) $(which docker-containerd-ctr)_ ; sudo cp ./bundles/latest/binary-daemon/docker-containerd-ctr $(which docker-containerd-ctr) sudo cp $(which docker-containerd-shim) $(which docker-containerd-shim)_ ; sudo cp ./bundles/latest/binary-daemon/docker-containerd-shim $(which docker-containerd-shim) sudo cp $(which dockerd) $(which dockerd)_ ; sudo cp ./bundles/latest/binary-daemon/dockerd $(which dockerd) sudo cp $(which docker-runc) $(which docker-runc)_ ; sudo cp ./bundles/latest/binary-daemon/docker-runc $(which docker-runc) sudo service docker start
Machen Sie sich keine Sorgen - wir haben die alten Binärdateien gesichert. Sie sind immer noch da, jedoch mit einem Unterstrich ( docker_
).
Herzlichen Glückwunsch, Sie haben jetzt ein experimentelles Andockgerät mit der Möglichkeit, einen Container zu überprüfen und ihn wiederherzustellen.
Bitte beachten Sie, dass experimentelle Funktionen NICHT für die Produktion bereit sind
Prüfpunkt und Wiederherstellen eines Containers
# create docker container
export cid=$(docker run -d --security-opt seccomp:unconfined busybox /bin/sh -c 'i=0; while true; do echo $i; i=$(expr $i + 1); sleep 1; done')
# container is started and prints a number every second
# display the output with
docker logs $cid
# checkpoint the container
docker checkpoint create $cid checkpointname
# container is not running anymore
docker np
# lets pass some time to make sure
# resume container
docker start $cid --checkpoint=checkpointname
# print logs again
docker logs $cid