Docker
Kontrollpunkter och återställ behållare
Sök…
Kompilera dockare med checkpoint och återställning aktiverad (ubuntu)
För att kompilera dockaren, rekommenderas det att du har minst 2 GB RAM . Även med det misslyckas det ibland så det är bättre att gå för 4 GB istället.
se till att git and make är installerat
sudo apt-get install make git-core -y
installera en ny kärna (minst 4.2)
sudo apt-get install linux-generic-lts-xenial
starta om maskinen så att den nya kärnan är aktiv
sudo reboot
kompilera
criu
som behövs för att köradocker 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
kontrollera om alla krav är uppfyllda för att köra criu
sudo criu check
kompilera experimentell dockare (vi behöver dockare för att kompilera dockare)
cd ~ wget -qO- https://get.docker.com/ | sh sudo usermod -aG docker $(whoami)
Vid denna tidpunkt måste vi logga in och logga in igen för att ha en docker-demon. Fortsätt med kompileringssteget efter relog
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
Vi har nu en sammanställd dockare. Låt oss flytta binärerna. Se till att ersätta
<version>
med den installerade versionensudo 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
Oroa dig inte - vi säkerhetskopierade de gamla binärerna. De är fortfarande kvar men med en understruk läggs till dess namn ( docker_
).
Grattis, du har nu en experimentell dockare med förmågan att kontrollera en behållare och återställa den.
Observera att experimentfunktioner INTE är redo för produktion
Kontrollera och återställ en behållare
# 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