Red Hat Training

A Red Hat training course is available for RHEL 8

9.7. Usando registros de contêineres com Buildah

Com o Buildah, você pode empurrar e puxar imagens de contêineres entre seu sistema local e os registros de contêineres públicos ou privados. Os exemplos a seguir mostram como fazê-lo:

  • Empurrar os contêineres para e puxá-los de um registro privado com buildah.
  • Empurre e puxe o container entre seu sistema local e o Docker Registry.
  • Use credenciais para associar seus contêineres a uma conta de registro quando você os empurra.

Use o comando skopeo, em conjunto com o comando buildah, para consultar os registros para obter informações sobre imagens de contêineres.

9.7.1. Empurrar containers para um registro privado

Empurrar contêineres para um registro de contêineres privado com o comando buildah funciona muito parecido com empurrar contêineres com o comando docker. Você precisa fazer isso:

  • Configurar um registro privado (OpenShift fornece um registro de contêineres ou você pode configurar um registro de contêineres Red Hat Quay).
  • Crie ou adquira a imagem do recipiente que você deseja empurrar.
  • Use buildah push para empurrar a imagem para o registro.

Para empurrar uma imagem do armazenamento local de contêineres Buildah, verifique o nome da imagem e depois empurre-a usando o comando buildah push. Lembre-se de identificar tanto o nome da imagem local quanto um novo nome que inclua o local. Por exemplo, um registro rodando no sistema local que está escutando na porta TCP 5000 seria identificado como localhost:5000.

# buildah images
IMAGE ID     IMAGE NAME                       CREATED AT          SIZE
cb702d492ee9 docker.io/library/myecho2:latest Nov 12, 2018 16:50     3.143 KB

# buildah push --tls-verify=false myecho2:latest localhost:5000/myecho2:latest
Getting image source signatures
Copying blob sha256:e4efd0...
...
Writing manifest to image destination
Storing signatures

Use o comando curl para listar as imagens no registro e skopeo para inspecionar os metadados sobre a imagem:

# curl http://localhost:5000/v2/_catalog
{"repositories":["myatomic","myecho2"]}
# curl http://localhost:5000/v2/myecho2/tags/list
{"name":"myecho2","tags":["latest"]}
# skopeo inspect --tls-verify=false docker://localhost:5000/myecho2:latest | less
{
    "Name": "localhost:5000/myecho2",
    "Digest": "sha256:8999ff6050...",
    "RepoTags": [
        "latest"
    ],
    "Created": "2017-11-21T16:50:25.830343Z",
    "DockerVersion": "",
    "Labels": {
        "architecture": "x86_64",
        "authoritative-source-url": "registry.redhat.io",

Neste ponto, qualquer ferramenta que possa extrair imagens de contêineres de um registro de contêineres pode obter uma cópia de sua imagem empurrada. Por exemplo, em um sistema RHEL 7, você poderia iniciar o daemon de doca e tentar puxar a imagem para que ela possa ser usada pelo comando docker, como segue:

# systemctl start docker
# docker pull localhost:5000/myecho2
# docker run localhost:5000/myecho2
This container works!