ホストOSの再起動が必要ですが、実行中のコンテナの状態を保存し、ホストシステムの再起動後に保存された時点からコンテナを再起動するにはどうすればよいですか?
答え1
Dockerの実験的オプションを設定します。
$ sudo nano /etc/docker/daemon.json
次へ追加
{
"experimental": true
}
Ctrl + Xを押してYを選択し、Enterを押して新しいファイルを保存します。
または
$ sudo echo '{"experimental": true}' >> /etc/docker/daemon.json
ドッカーサービスを再起動します。
$ sudo service docker restart
確認してください
$ docker version
実際に実験が有効になっている場合
CRIUパッケージのインストール
$ sudo apt-get install criu
CRIUでDockerチェックポイントを使用して簡単なシナリオを試してください。
docker run --security-opt=seccomp:unconfined --name cr -d busybox /bin/sh -c 'i=0; while true; do echo $i; i=$(expr $i + 1); sleep 1; done'
値の確認:
docker logs cr
コンテナのチェックポイントを作成します。
docker checkpoint create --leave-running=true cr checkpoint0
コンテナをしばらく実行した後、ログをもう一度確認してください。
$ docker logs cr
これでコンテナを停止します。
$ docker stop cr
チェックポイントでコンテナを再起動/再作成します。
docker start --checkpoint checkpoint0 cr
ログを確認してください。
docker logs cr
チェックポイントが生成された値でログが復元されたことを確認できます。