Menu Close
Settings Close

Language and Page Formatting Options

15.3. システム間のコンテナーの移行

この手順は、コンテナーで実行しているアプリケーションの状態を失うことなく、実行中のコンテナーを別のシステムに移行する方法を示しています。この例は、コンテナーチェックポイントのローカルでの作成および復元 のコンテナーを基にしています。

counter でタグ付けされたセクション。

前提条件

以下の手順は、コンテナーがレジストリーにプッシュされている場合には不要です。理由は、Podman がローカルでコンテナーを利用できない場合に自動的にコンテナーをレジストリーからダウンロードするためです。この例ではレジストリーを使用しません。以前に構築およびタグ付けしたコンテナー (コンテナーチェックポイントのローカルでの作成および復元 セクションを参照) をエクスポートする必要があります。

  • 以前にビルドしたコンテナーをエクスポートします。

    # podman save --output counter.tar counter
  • エクスポートしたコンテナーイメージを移行先システム (other_host) にコピーします。

    # scp counter.tar other_host:
  • エクスポートしたコンテナーを移行先システムにインポートします。

    # ssh other_host podman load --input counter.tar

このコンテナーの移行先のシステムには、ローカルコンテナーストレージに保存されているのと同じコンテナーイメージがあります。

手順

  1. root でコンテナーを起動します。

    # podman run --name criu-test --detach counter
  2. コンテナーの IP アドレスを表示します。

    # podman inspect criu-test --format "{{.NetworkSettings.IPAddress}}"
    10.88.0.247
  3. 要求をコンテナーに送信します。

    # curl 10.88.0.247:8080
    0
    # curl 10.88.0.247:8080
    1
  4. コンテナーのチェックポイントを作成し、チェックポイントイメージを tar.gz ファイルにエクスポートします。

    # podman container checkpoint criu-test --export /tmp/chkpt.tar.gz
  5. チェックポイントアーカイブを移行先ホストにコピーします。

    # scp /tmp/chkpt.tar.gz other_host:/tmp/
  6. 移行先ホスト (other_host) のチェックポイントを復元します。

    # podman container restore --import /tmp/chkpt.tar.gz
  7. 宛先ホスト (other_host) のコンテナーに要求を送信します。

    # *curl 10.88.0.247:8080*
    2

これで、ステートフルコンテナーが、状態を失うことなく、別のシステムへ移行されました。