9.7. Uso de registros de contenedores con Buildah
Con Buildah, puedes empujar y sacar imágenes de contenedores entre tu sistema local y los registros de contenedores públicos o privados. Los siguientes ejemplos muestran cómo hacerlo:
- Empuje los contenedores hacia y desde un registro privado con buildah.
- Empuje y tire del contenedor entre su sistema local y el Registro Docker.
- Utiliza las credenciales para asociar tus contenedores con una cuenta de registro cuando los empujes.
Utilice el comando skopeo, junto con el comando buildah
, para consultar los registros en busca de información sobre las imágenes de los contenedores.
9.7.1. Envío de contenedores a un registro privado
El envío de contenedores a un registro de contenedores privado con el comando buildah
funciona de forma muy similar al envío de contenedores con el comando docker
. Es necesario:
- Configure un registro privado (OpenShift proporciona un registro de contenedores o puede configurar un registro de contenedores de Red Hat Quay).
- Cree o adquiera la imagen del contenedor que desea impulsar.
-
Utilice
buildah push
para enviar la imagen al registro.
Para empujar una imagen desde su almacenamiento local de contenedores Buildah, compruebe el nombre de la imagen, y luego empuje utilizando el comando buildah push
. Recuerda identificar tanto el nombre de la imagen local como un nuevo nombre que incluya la ubicación. Por ejemplo, un registro que se ejecuta en el sistema local que está escuchando en el puerto TCP 5000 se identificaría 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
Utilice el comando curl
para listar las imágenes en el registro y skopeo
para inspeccionar los metadatos sobre la imagen:
# 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",
En este punto, cualquier herramienta que pueda extraer imágenes de contenedores de un registro de contenedores puede obtener una copia de tu imagen empujada. Por ejemplo, en un sistema RHEL 7 podrías iniciar el demonio docker y tratar de extraer la imagen para que pueda ser utilizada por el comando docker
de la siguiente manera:
# systemctl start docker # docker pull localhost:5000/myecho2 # docker run localhost:5000/myecho2 This container works!