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.

  1. se till att git and make är installerat

    sudo apt-get install make git-core -y
    
  2. installera en ny kärna (minst 4.2)

    sudo apt-get install linux-generic-lts-xenial
    
  3. starta om maskinen så att den nya kärnan är aktiv

    sudo reboot
    
  4. kompilera criu som behövs för att köra 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
    
  5. kontrollera om alla krav är uppfyllda för att köra criu

    sudo criu check
    
  6. 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
    
  1. Vi har nu en sammanställd dockare. Låt oss flytta binärerna. Se till att ersätta <version> med den installerade versionen

    sudo 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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow