Red Hat Training

A Red Hat training course is available for RHEL 8

4.12. コンテナーのエクスポートおよびインポート

podman export コマンドを使用して、実行中のコンテナーのファイルシステムをローカルマシンの tarball にエクスポートできます。たとえば、頻繁に使用しない大規模なコンテナーがある場合、スナップショットを保存して後で復元できるようにする場合には、podman export コマンドを使用して、実行中のコンテナーの現在のスナップショットを tarball にエクスポートできます。

podman import コマンドを使用して tarball をインポートし、ファイルシステムイメージとして保存できます。これにより、このファイルシステムイメージを実行するか、他のイメージのレイヤーとして使用できます。

前提条件

  • Podman ツールがインストールされている。

    #  yum module install -y container-tools

手順

  1. registry.access.redhat.com/ubi8/ubi イメージに基づいて、myubi コンテナーを実行します。

    $ podman run -dt --name=myubi registry.access.redhat.com/ubi8/ubi
  2. 必要に応じて、すべてのコンテナーを一覧表示します。

    $ podman ps -a
    CONTAINER ID  IMAGE                                    COMMAND          CREATED     STATUS         PORTS   NAMES
    a6a6d4896142  registry.access.redhat.com/ubi8:latest   /bin/bash        7 seconds ago  Up 7 seconds ago          myubi
  3. myubi コンテナーに割り当てます。

    $ podman attach myubi
  4. testfile という名前のファイルを作成します。

    [root@a6a6d4896142 /]# echo "hello" > testfile
  5. CTRL+p および CTRL+q を使用してコンテナーからデタッチします。
  6. ローカルマシンで、myubi のファイルシステムを myubi-container.tar としてエクスポートします。

    $ podman export -o myubi.tar a6a6d4896142
  7. 必要に応じて、現在のディレクトリーの内容を一覧表示します。

    $ ls -l
    -rw-r--r--. 1 user user 210885120 Apr  6 10:50 myubi-container.tar
    ...
  8. 必要に応じて、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 にコンテナーのファイルシステムが含まれていることを確認できます。

  9. 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
  10. すべてのイメージを一覧表示します。

    $ podman images
    REPOSITORY                              TAG     IMAGE ID      CREATED         SIZE
    docker.io/library/myubi-imported       latest  c296689a17da  51 seconds ago  211 MB
  11. testfile ファイルの内容を表示します。

    $ podman run -it  --name=myubi-imported docker.io/library/myubi-imported cat testfile
    hello

関連情報

  • podman-export man ページ
  • podman-import man ページ