Docker
Controlepunten en containers herstellen
Zoeken…
Compileer docker met checkpoint en herstel ingeschakeld (ubuntu)
Om docker te compileren is het aanbevolen dat u minimaal 2 GB RAM hebt . Zelfs met dat faalt het soms, dus het is beter om in plaats daarvan voor 4GB te gaan.
zorg ervoor dat git en make is geïnstalleerd
sudo apt-get install make git-core -y
installeer een nieuwe kernel (minimaal 4.2)
sudo apt-get install linux-generic-lts-xenial
start de machine opnieuw op om de nieuwe kernel actief te hebben
sudo reboot
compileer
criu
die nodig is omcriu
docker 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
controleer of aan alle vereisten is voldaan om criu uit te voeren
sudo criu check
compileer experimenteel docker (we hebben docker nodig om docker te compileren)
cd ~ wget -qO- https://get.docker.com/ | sh sudo usermod -aG docker $(whoami)
Op dit punt moeten we uitloggen en opnieuw inloggen om een docker daemon te hebben. Na opnieuw inloggen gaat u verder met compileren
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
We hebben nu een gecompileerde docker. Laten we de binaire bestanden verplaatsen. Zorg ervoor dat
<version>
vervangen door de geïnstalleerde versiesudo 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
Maak je geen zorgen - we hebben een back-up gemaakt van de oude binaries. Ze zijn er nog steeds, maar met een onderstrepingsteken toegevoegd aan de namen ( docker_
).
Gefeliciteerd, u hebt nu een experimenteel koppelapparaat met de mogelijkheid om een container te controleren en te herstellen.
Merk op dat experimentele functies NIET klaar zijn voor productie
Controlepunt en herstel een container
# 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