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!