Red Hat Training
A Red Hat training course is available for RHEL 8
11.3. skopeo
Com o comando skopeo
, você pode trabalhar com imagens de contêineres de registros sem usar o daemon de doca ou o comando docker
. Os registros podem incluir o Docker Registry, seus próprios registros locais, Red Hat Quay ou OpenShift. As atividades que você pode fazer com o skopeo incluem:
-
inspect
: A saída de um comandoskopeo inspect
é semelhante ao que você vê de um comandodocker inspect
: informações de baixo nível sobre a imagem do contêiner. Essa saída pode ser em formato json (padrão) ou em formato raw (usando a opção--raw
). -
copy
: Comskopeo copy
você pode copiar uma imagem de um container de um registro para outro registro ou para um diretório local. -
layers
: O comandoskopeo layers
permite baixar as camadas associadas às imagens para que elas sejam armazenadas como tarballs e arquivos de manifesto associados em um diretório local.
Como o comando buildah
e outras ferramentas que dependem da biblioteca de contêineres/imagens, o comando skopeo
pode trabalhar com imagens de áreas de armazenamento de contêineres diferentes daquelas associadas ao Docker. Os transportes disponíveis para outros tipos de armazenamento de contêineres incluem: containers-storage (para imagens armazenadas por buildah
e CRI-O), ostree (para contêineres atômicos e de sistema), oci (para conteúdo armazenado em um diretório compatível com OCI), e outros. Veja a página de manual skopeo para detalhes.
Para experimentar o skopeo, você poderia criar um registro local, depois executar os comandos que se seguem para inspecionar, copiar e baixar as camadas de imagem. Se você quiser seguir junto com os exemplos, comece fazendo o seguinte:
- Instale um registro local (como o Red Hat Quay. O software de registro de contêineres disponível no pacote doca-distribuição para a RHEL 7, não está disponível para a RHEL 8.
-
Puxe a imagem mais recente da RHEL para seu sistema local (
podman pull ubi8/ubi
). Retagne a imagem RHEL e empurre-a para seu registro local como a seguir:
# podman tag ubi8/ubi localhost/myubi8 # podman push localhost/myubi8
O restante desta seção descreve como inspecionar, copiar e obter camadas da imagem RHEL.
A ferramenta skopeo
, por padrão, requer uma conexão TLS. Ela falha ao tentar usar uma conexão não criptografada. Para anular o padrão e usar um registro http, prefira http:
à string <registry>/<image>
.
11.3.1. Inspeção de imagens de contêineres com skopeo
Quando você inspeciona uma imagem do contêiner a partir de um registro, você precisa identificar o formato do contêiner (como docker.io ou localhost), a localização do registro (como docker.io ou localhost), e o repositório/imagem (como ubi8/ubi).
O seguinte exemplo inspeciona a imagem do container mariadb do Docker Registry:
# skopeo inspect docker://docker.io/library/mariadb { "Name": "docker.io/library/mariadb", "Tag": "latest", "Digest": "sha256:d3f56b143b62690b400ef42e876e628eb5e488d2d0d2a35d6438a4aa841d89c4", "RepoTags": [ "10.0.15", "10.0.16", "10.0.17", "10.0.19", ... "Created": "2018-06-10T01:53:48.812217692Z", "DockerVersion": "1.10.3", "Labels": {}, "Architecture": "amd64", "Os": "linux", "Layers": [ ...
Assumindo que você empurrou uma imagem de container etiquetada localhost/myubi8
para um registro de container rodando em seu sistema local, o seguinte comando inspeciona essa imagem:
# skopeo inspect docker://localhost/myubi8 { "Name": "localhost/myubi8", "Tag": "latest", "Digest": "sha256:4e09c308a9ddf56c0ff6e321d135136eb04152456f73786a16166ce7cba7c904", "RepoTags": [ "latest" ], "Created": "2018-06-16T17:27:13Z", "DockerVersion": "1.7.0", "Labels": { "Architecture": "x86_64", "Authoritative_Registry": "registry.access.redhat.com", "BZComponent": "rhel-server-docker", "Build_Host": "rcm-img01.build.eng.bos.redhat.com", "Name": "myubi8", "Release": "75", "Vendor": "Red Hat, Inc.", "Version": "8.0" }, "Architecture": "amd64", "Os": "linux", "Layers": [ "sha256:16dc1f96e3a1bb628be2e00518fec2bb97bd5933859de592a00e2eb7774b6ecf" ] }