5.12. コンテナーのエクスポートおよびインポート
podman export
コマンドを使用して、実行中のコンテナーのファイルシステムをローカルマシンの tarball にエクスポートできます。たとえば、頻繁に使用しない大規模なコンテナーがある場合、スナップショットを保存して後で復元できるようにする場合には、podman export
コマンドを使用して、実行中のコンテナーの現在のスナップショットを tarball にエクスポートできます。
podman import
コマンドを使用して tarball をインポートし、ファイルシステムイメージとして保存できます。これにより、このファイルシステムイメージを実行するか、他のイメージのレイヤーとして使用できます。
前提条件
-
container-tools
モジュールがインストールされている。
手順
registry.access.redhat.com/ubi8/ubi
イメージに基づいて、myubi
コンテナーを実行します。$ podman run -dt --name=myubi registry.access.redhat.com/8/ubi
必要に応じて、すべてのコンテナーをリスト表示します。
$ podman ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a6a6d4896142 registry.access.redhat.com/8:latest /bin/bash 7 seconds ago Up 7 seconds ago myubi
myubi
コンテナーに割り当てます。$ podman attach myubi
testfile
という名前のファイルを作成します。[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 file
myubi-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 MB
testfile
ファイルの内容を表示します。$ podman run -it --name=myubi-imported docker.io/library/myubi-imported cat testfile hello
関連情報
-
システム上の
podman-export
およびpodman-import
man ページ