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 copyvocê pode copiar uma imagem de um container de um registro para outro registro ou para um diretório local. -
layers: O comandoskopeo layerspermite 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"
]
}