5.13. コンテナーのエクスポートおよびインポート
異なるホスト環境間でファイルシステムを簡単に転送するには、Red Hat Enterprise Linux コンテナーをエクスポートおよびインポートします。コンテナーをアーカイブ (tar ファイル) にパッケージ化することで、重要なデータのバックアップ、チームとの設定情報の共有、および分離されたワークロードのシームレスな移行が可能になります。
前提条件
-
container-toolsメタパッケージがインストールされている。
手順
registry.access.redhat.com/ubi10/ubiイメージをベースとするmyubiコンテナーを実行します。$ podman run -dt --name=myubi registry.access.redhat.com/10/ubi必要に応じて、すべてのコンテナーをリスト表示します。
$ podman ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a6a6d4896142 registry.access.redhat.com/10:latest /bin/bash 7 seconds ago Up 7 seconds ago myubimyubiコンテナーに割り当てます。$ podman attach myubitestfileという名前のファイルを作成します。[root@a6a6d4896142 /]# echo "hello" > testfile-
CTRL+pおよびCTRL+qを使用してコンテナーからデタッチします。 ローカルマシンで、
myubiのファイルシステムをmyubi-container.tarとしてエクスポートします。$ podman export -o myubi.tar a6a6d4896142必要に応じて、現在のディレクトリーの内容をリスト表示します。
$ ls -l -rw-r--r--. 1 user user 210885120 Apr 6 10:50 myubi-container.tar ...必要に応じて、
myubi-containerディレクトリーを作成し、myubi-container.tarアーカイブからすべてのファイルを抽出します。ツリー形式でmyubi-directoryの内容をリスト表示します。$ mkdir myubi-container $ tar -xf myubi-container.tar -C myubi-container $ tree -L 1 myubi-container ├── bin -> usr/bin ├── boot ├── dev ├── etc ├── home ├── lib -> usr/lib ├── lib64 -> usr/lib64 ├── lost+found ├── media ├── mnt ├── opt ├── proc ├── root ├── run ├── sbin -> usr/sbin ├── srv ├── sys ├── testfile ├── tmp ├── usr └── var 20 directories, 1 filemyubi-container.tarにコンテナーのファイルシステムが含まれていることを確認できます。myubi.tarをインポートして、ファイルシステムイメージとして保存します。$ podman import myubi.tar myubi-imported Getting image source signatures Copying blob 277cab30fe96 done Copying config c296689a17 done Writing manifest to image destination Storing signatures c296689a17da2f33bf9d16071911636d7ce4d63f329741db679c3f41537e7cbfすべてのイメージをリスト表示します。
$ podman images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/library/myubi-imported latest c296689a17da 51 seconds ago 211 MBtestfileファイルの内容を表示します。$ podman run -it --name=myubi-imported myubi-imported cat testfile hellopodman exportコマンドを使用して、実行中のコンテナーのファイルシステムをローカルマシンの tar ファイルにエクスポートできます。たとえば、使用頻度の低い大きなコンテナーや、後で復元するためにスナップショットを保存しておきたいコンテナーがある場合などです。podman importコマンドを使用して tar ファイルをインポートし、ファイルシステムイメージとして保存できます。これにより、このファイルシステムイメージを実行するか、他のイメージのレイヤーとして使用できます。詳細は、システム上の
podman-export (1)およびpodman-import(1)の man ページを参照してください。