サーチ…


チェックポイントと復元機能を有効にしたドッカーをコンパイルする(ubuntu)

ドッカーをコンパイルするには、少なくとも2GBのRAMが必要です。それでも、それは時々失敗するので、その代わりに4GBの方が良いです。

  1. gitとmakeがインストールされていることを確認する

    sudo apt-get install make git-core -y
    
  2. 新しいカーネルをインストールする(少なくとも4.2)

    sudo apt-get install linux-generic-lts-xenial
    
  3. マシンを再起動して新しいカーネルをアクティブにする

    sudo reboot
    
  4. docker checkpointを実行するために必要なコンパイルcriu

    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. criuを実行するためにすべての要件が満たされているかどうかを確認する

    sudo criu check
    
  6. 実験的なドッカーをコンパイルする(ドッカーをコンパイルするためにドッカーが必要)

    cd ~
    wget -qO- https://get.docker.com/ | sh
    sudo usermod -aG docker $(whoami)
    
  • この時点で、ログオフしてログインし直してドッカーデーモンを作成する必要があります。 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. 私たちは今コンパイルされたドッカーを持っています。バイナリを移動します。 <version>をインストールされているバージョンに置き換えてください

    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
    

心配しないでください - 私たちは古いバイナリをバックアップしました。彼らはまだそこにありますが、その名前にアンダースコア( docker_ )が追加されています。

おめでとうございます。コンテナをチェックポイントして復元する能力を持つ実験的なドッカーがあります。

実験的な機能はプロダクションの準備ができていないことに注意してください

チェックポイントとコンテナの復元

# 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
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow