Dockerコンテナを一時停止してからホストシステムを再起動し、コンテナの一時停止を解除するにはどうすればよいですか?

Dockerコンテナを一時停止してからホストシステムを再起動し、コンテナの一時停止を解除するにはどうすればよいですか?

ホスト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

チェックポイントが生成された値でログが復元されたことを確認できます。

https://technology.amis.nl/2018/04/08/first-steps-with-docker-checkpoint-to-create-and-restore-snapshots-of-running-containers/

関連情報