Docker
Points de contrôle et de restauration
Recherche…
Compiler le menu fixe avec le point de contrôle et la restauration activés (Ubuntu)
Pour compiler docker, il est recommandé d'avoir au moins 2 Go de RAM . Même si cela échoue parfois, il vaut mieux opter pour 4 Go à la place.
assurez-vous que git et make sont installés
sudo apt-get install make git-core -y
installer un nouveau noyau (au moins 4.2)
sudo apt-get install linux-generic-lts-xenial
redémarrer la machine pour que le nouveau noyau soit actif
sudo reboot
compiler
criu
qui est nécessaire pour exécuter ledocker checkpoint
sudo 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
vérifier si chaque exigence est remplie pour exécuter criu
sudo criu check
compiler le docker expérimental (il faut docker pour compiler docker)
cd ~ wget -qO- https://get.docker.com/ | sh sudo usermod -aG docker $(whoami)
À ce stade, nous devons nous déconnecter et nous reconnecter pour avoir un démon docker. Après relog continuer avec l'étape de compilation
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
Nous avons maintenant un menu fixe compilé. Permet de déplacer les binaires. Assurez-vous de remplacer
<version>
par la version installéesudo 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
Ne vous inquiétez pas - nous avons sauvegardé les anciens fichiers binaires. Ils sont toujours là mais avec un trait de soulignement ajouté à ses noms ( docker_
).
Félicitations, vous avez maintenant un docker expérimental avec la possibilité de contrôler un conteneur et de le restaurer.
S'il vous plaît noter que les fonctionnalités expérimentales ne sont pas prêts pour la production
Point de contrôle et restauration d'un conteneur
# 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