はじめに
この実験では、Docker コンテナのチェックポイントを管理する方法を学びます。まず Docker コンテナを作成し、その現在の状態のチェックポイントを作成します。これにより、コンテナの状態を保存・復元できるようになります。
チェックポイント作成後、既存のチェックポイントを一覧表示して存在を確認する方法を学びます。最後に、docker checkpoint rmコマンドを使用して特定のチェックポイントを削除し、正常に削除されたことを確認する実習を行います。本実験では、Docker チェックポイントの基本操作に関する実践的な経験を得ることができます。
コンテナの作成とチェックポイント
このステップでは、Docker コンテナを作成し、その現在の状態のチェックポイントを作成する方法を学びます。チェックポイント機能を使用すると、実行中のコンテナの状態を保存し、後で復元することができます。これはデバッグ、マイグレーション、またはアプリケーションのスナップショット作成に役立ちます。
まず、コンテナを実行するためのイメージが必要です。ここではubuntuイメージを使用します。LabEx VM 環境にはすべてのイメージが事前にプルされていないため、最初にubuntuイメージをプルします。
docker pull ubuntu
ubuntuイメージがプルされていることを示す出力が表示されます。
Using default tag: latest
latest: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest
次に、ubuntuイメージからシンプルなコンテナを実行します。デタッチモード (-d) で実行し、名前 (--name checkpoint-test) を付けます。また、sleep infinityのようなコンテナを実行し続けるコマンドを実行します。
docker run -d --name checkpoint-test ubuntu sleep infinity
コンテナ ID を示す長い文字列が表示されます。
<container_id>
コンテナが実行中かどうかを確認するには、docker psコマンドを使用します。
docker ps
checkpoint-testコンテナがUpのステータスでリストされているのが確認できます。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "sleep infinity" X seconds ago Up X seconds checkpoint-test
実行中のコンテナが準備できたので、その状態のチェックポイントを作成できます。docker checkpoint createコマンドを使用し、コンテナ名とチェックポイント名を指定します。ここではチェックポイント名をmy-checkpointとします。
docker checkpoint create checkpoint-test my-checkpoint
コマンドが成功すると、出力は表示されません。これはチェックポイントが正常に作成されたことを意味します。
既存チェックポイントの一覧表示
前のステップでは、コンテナcheckpoint-testに対してmy-checkpointという名前のチェックポイントを作成しました。このステップでは、コンテナの既存チェックポイントを一覧表示する方法を学びます。
特定のコンテナのチェックポイントを一覧表示するには、docker checkpoint lsコマンドの後にコンテナ名を指定します。
docker checkpoint ls checkpoint-test
出力には、前のステップで作成したチェックポイント名が表示されます。
CHECKPOINT ID
my-checkpoint
このコマンドは、指定したコンテナに対して作成されたすべてのチェックポイントを表示します。複数のチェックポイントを作成していた場合、それらはすべてここにリストされます。
特定チェックポイントの削除
これまでのステップで、コンテナとそのチェックポイントを作成し、既存のチェックポイントを一覧表示しました。このステップでは、特定のチェックポイントを削除する方法を学びます。
チェックポイントを削除するには、docker checkpoint rmコマンドを使用し、続けてコンテナ名と削除したいチェックポイント名を指定します。ここでは、checkpoint-testコンテナからmy-checkpointチェックポイントを削除します。
docker checkpoint rm checkpoint-test my-checkpoint
コマンドが成功すると、何も出力されません。これはチェックポイントが削除されたことを示します。
チェックポイントを削除しても、実行中のコンテナには影響しません。コンテナは現在の状態で実行を継続します。
チェックポイント削除の確認
前のステップで、checkpoint-testコンテナからmy-checkpointチェックポイントを削除しました。このステップでは、チェックポイントが正常に削除されたことを確認するため、再度チェックポイントを一覧表示します。
チェックポイントが削除されたことを確認するには、ステップ 2 と同様にcheckpoint-testコンテナに対してdocker checkpoint lsコマンドを使用します。
docker checkpoint ls checkpoint-test
今回は、何も出力されないか、このコンテナにチェックポイントが存在しないことを示すエラーメッセージが表示されるはずです。これにより、my-checkpointチェックポイントが削除されたことが確認できます。
もしmy-checkpointがまだ表示される場合は、前のステップに戻り、docker checkpoint rmコマンドを正しく実行したか確認してください。
チェックポイントの削除を確認したら、作成したコンテナをクリーンアップできます。まずcheckpoint-testコンテナを停止し、その後削除します。
まずコンテナを停止します:
docker stop checkpoint-test
コンテナ名が出力として表示されます。
checkpoint-test
次に、コンテナを削除します:
docker rm checkpoint-test
再びコンテナ名が出力として表示されます。
checkpoint-test
これでdocker psを実行すると、checkpoint-testコンテナは表示されなくなります。
docker ps
このコマンドは実行中のコンテナのみを表示します。他のコンテナが実行されていない場合、出力にはヘッダ行のみが表示されます。
まとめ
この実験では、Docker コンテナを作成し、docker checkpoint createコマンドを使用してその現在の状態のチェックポイントを作成する方法を学びました。まずubuntuイメージをプルし、sleep infinityコマンドでcheckpoint-testという名前のコンテナをデタッチモードで実行しました。docker psを使用してコンテナが実行中であることを確認しました。最後に、checkpoint-testコンテナに対してmy-checkpointという名前のチェックポイントを作成しました。



