第2章 コンテナーイメージの使用

podman を使用して、コンテナーイメージを実行、起動、停止、調査、および削除できます。

2.1. コンテナーイメージの検索

podman search コマンドを使用すると、イメージ用に選択したコンテナーレジストリーを検索できます。

注記

また、Red Hat Container レジストリーでイメージを検索することもできます。Red Hat Container レジストリーには、イメージの説明、コンテンツ、ヘルスインデックス、その他の情報が含まれます。

設定ファイル registries.conf でレジストリーの一覧を確認できます。

[registries.search]
registries = ['registry.access.redhat.com', 'registry.redhat.io', 'docker.io']

[registries.insecure]
registries = []

[registries.block]
registries = []
  • デフォルトでは、podman search コマンドは、指定の順序で [registries.search] セクションに記載されているレジストリーからコンテナーイメージを検索します。この場合、podman search コマンドは、この順番で registry.access.redhat.com、registry.redhat.io、および docker.io で要求されたイメージを検索します。
  • [registries.insecure] セクションは、TLS を使用しないレジストリーを追加します(非セキュアなレジストリー)。
  • [registries.block] セクションは、ローカルシステムからレジストリーへのアクセスを許可しません。

root ユーザーとして、/etc/containers/registries.conf ファイルを編集し、デフォルトのシステム全体の検索設定を変更できます。

podman の一般 (root 以外の) ユーザーは、ホームディレクトリー ($HOME/.config/containers/registries.conf) に独自の registries.conf ファイルを作成して、システム全体の設定を上書きできます。

コンテナーレジストリーを設定する際に、以下の条件を満たしていることを確認します。

  • 各レジストリーは一重引用符で囲む必要があります。
  • registries = value に複数のレジストリーが設定されている場合は、それらのレジストリーをコンマで区切る必要があります。
  • IP アドレスまたはホスト名のいずれかでレジストリーを識別できます。
  • レジストリーが標準以外のポート (安全な場合は TCP ポート 443 で、安全ではない場合は 80) を使用する場合は、ポート番号をレジストリー名とともに入力してください。たとえば、host.example.com:9999 です。
  • システムは、registries.conf ファイルの registries.search リストに表示される順序でレジストリーを検索します。

podman search コマンドの例を以下に示します。最初の例は、quay.io からすべてのイメージの検索に失敗したことを示しています。末尾のスラッシュは、レジストリー全体からアクセス可能なすべてのイメージを検索することを示しています。

# podman search quay.io/
ERRO[0000] error searching registry "quay.io": couldn't search registry "quay.io":
unable to retrieve auth token: invalid username/password

quay.io レジストリーを検索するには、まずログインします。

# podman login quay.io
Username: johndoe
Password: ***********
Login Succeeded!
# podman search quay.io/
INDEX     NAME                                       DESCRIPTION   STARS   OFFICIAL   AUTOMATED
quay.io   quay.io/test/myquay                                      0
quay.io   quay.io/test/redistest                                   0
quay.io   quay.io/johndoe/websrv21                                 0
quay.io   quay.io/johndoe/mydbtest                                 0
quay.io   quay.io/johndoe/newbuild-10                              0

利用可能なすべてのレジストリーで postgresql イメージを検索します (40 を超えるイメージが見つかります)。

# podman search postgresql-10
INDEX       NAME                                            DESCRIPTION                    STARS OFFICIAL AUTOMATED
redhat.io   registry.redhat.io/rhel8/postgresql-10          This container image ...       0
redhat.io   registry.redhat.io/rhscl/postgresql-10-rhel7    PostgreSQL is an advanced ...  0
quay.io     quay.io/mettle/postgresql-database-provisioning
docker.io   docker.io/centos/postgresql-10-centos7          PostgreSQL is an advanced ... 13
...

postgresql の検索を registry.redhat.io のイメージに制限するには、次のコマンドを入力します。レジストリーおよびイメージ名を入力して、レジストリーの任意のリポジトリーが一致している点に注意してください。

# podman search registry.redhat.io/postgresql-10
INDEX       NAME                                           DESCRIPTION           STARS   OFFICIAL   AUTOMATED
redhat.io   registry.redhat.io/rhel8/postgresql-10         This container image ...  0
redhat.io   registry.redhat.io/rhscl/postgresql-10-rhel7   PostgreSQL is an  ...     0

各コンテナーイメージについてより詳細な説明を取得するには、--no-trunc をコマンドに追加します。

# podman search --no-trunc registry.redhat.io/rhel8/postgresql-10
INDEX       NAME   DESCRIPTION              STARS   OFFICIAL   AUTOMATED
redhat.io   registry.redhat.io/rhel8/postgresql-10
                   This container image provides a containerized
                   packaging of the PostgreSQL postgres daemon and
                   client application. The postgres server daemon
                   accepts connections from clients and provides
                   access to content from PostgreSQL databases on
                   behalf of the clients.   0

非セキュアなレジストリーにアクセスするには、レジストリーの完全修飾名を /etc/containers/registries.conf ファイルの [registries.insecure] セクションに追加します。以下に例を示します。

[registries.search]
registries = ['myregistry.example.com']

[registries.insecure]
registries = ['myregistry.example.com']

次に、myimage イメージを検索します。

# podman search myregistry.example.com/myimage
INDEX      NAME  DESCRIPTION                                       STARS  OFFICIAL  AUTOMATED
example.com  myregistry.example.com/myimage
   The myimage container executes the ...   0

これで、myimage イメージをプルできます。

# podman pull myimage.example.com/myimage

このページには機械翻訳が使用されている場合があります (詳細はこちら)。