Red Hat Training

A Red Hat training course is available for RHEL 8

2.7. Busca de imagens de contêineres

O comando podman search permite a busca de imagens nos registros de contêineres selecionados.

Nota

Você também pode procurar por imagens no Red Hat Container Registry. O Registro de Contêineres da Red Hat inclui a descrição da imagem, conteúdo, índice de saúde e outras informações.

Você pode encontrar a lista de registros no arquivo de configuração registries.conf:

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

[registries.insecure]
registries = []

[registries.block]
registries = []
  • Por padrão, o comando podman search procura por imagens de contêineres dos registros listados na seção [registries.search] na ordem dada. Neste caso, o comando podman search procura a imagem solicitada em registry.access.redhat.com, registry.redhat.io e docker.io nesta ordem.
  • A seção [registries.insecure] acrescenta os registros que não utilizam TLS (um registro inseguro).
  • A seção [registries.block] permite o acesso ao registro a partir de seu sistema local.

Como um usuário root, você pode editar o arquivo /etc/containers/registries.conf para alterar as configurações padrão de busca em todo o sistema.

Como usuário regular (sem raiz) do podman, você pode criar seu próprio arquivo registries.conf em seu diretório pessoal ($HOME/.config/containers/registries.conf) para substituir as configurações de todo o sistema.

Certifique-se de que você segue as condições ao configurar os registros de contêineres:

  • Cada registro deve ser cercado por aspas simples.
  • Se houver vários registros definidos para o registries = value, você deve separar esses registros por vírgulas.
  • Você pode identificar os registros por endereço IP ou hostname.
  • Se o registro usa uma porta não padrão - que não seja a porta TCP 443 para seguro e 80 para inseguro, digite o número dessa porta com o nome do registro. Por exemplo: host.example.com:9999.
  • O sistema procura por registros na ordem em que eles aparecem na lista registries.search do arquivo registries.conf.

Seguem alguns exemplos de comando podman search. O primeiro exemplo ilustra a busca mal sucedida de todas as imagens do cais.io. O forwardlash no final significa procurar em todo o registro por todas as imagens acessíveis a você:

# 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

Para pesquisar o registro do cais.io, faça o login primeiro:

# 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

Procure em todos os registros disponíveis por imagens postgresql (resultando em mais de 40 imagens encontradas):

# 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
...

Para limitar sua busca por postgresql às imagens de registry.redhat.io, digite o seguinte comando. Observe que, inserindo o registro e o nome da imagem, qualquer repositório no registro pode ser correspondido:

# 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

Para obter descrições mais longas para cada imagem de recipiente, adicione --no-trunc ao comando:

# 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

Para acessar os registros inseguros, adicione o nome totalmente qualificado do registro à seção [registries.insecure] do arquivo /etc/containers/registries.conf. Por exemplo:

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

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

Em seguida, procure por imagens em 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

Agora você pode puxar a imagem myimage:

# podman pull myimage.example.com/myimage