O que é Skopeo?
Skopeo é uma ferramenta open source usada para manipular, inspecionar, assinar e transferir imagens de container e repositórios de imagem em sistemas Linux®, Windows e MacOS. Como o Podman e o Buildah, o Skopeo é um projeto open source voltado para a comunidade que não exige executar um daemon de container.
Com o Skopeo, você pode inspecionar imagens em um registro remoto sem precisar baixar toda a imagem com todas as suas camadas, tornando-a uma solução modular e lightweight para trabalhar com imagens de container em diferentes formatos, incluindo Open Container Initiative (OCI) e imagens Docker.
O que são imagens de container?
Uma imagem de container é um arquivo com código executável que pode ser executado em um processo isolado. Esses arquivos consistem em duas partes:
arquivo tar
A primeira parte é um ou mais arquivos tar do sistema de arquivos do container. Um arquivo tar é uma coleção de arquivos e o diretório de sistema de arquivos contém todos os códigos e arquivos de configuração necessários para executar uma aplicação.
arquivo JSON
A segunda parte consiste em arquivos JSON, que descrevem a aplicação, oferecem configuração do desenvolvedor sobre como executar o container, transmitem dados entre a aplicação e o servidor e armazenam metadados sobre os componentes individuais da imagem e como se referir a eles.
Um repositório de containers é um grupo de imagens de container com diferentes versões de uma aplicação, e um registro de containers é um servidor que oferece acesso a imagens ou a capacidade de fazer upload de novas imagens.
Recursos da Red Hat
Como o Skopeo funciona?
O Skopeo (grego para "visualização remota") foi a primeira ferramenta de container desenvolvida pelos engenheiros da Red Hat em conjunto com a comunidade open source. Ele trabalha com o Podman e o Buildah para gerenciar containers de OCI. Simplificando, o Podman executa containers, o Buildah cria containers e o Skopeo transporta containers, entre outras coisas. Pense nessas ferramentas como um canivete suíço para o seu ambiente de containers. O Skopeo é uma lâmina cega e versátil à sua disposição.
Ele inspeciona imagens com o comando skopeo inspect. Antes do Skopeo, para inspecionar uma imagem era necessário extrai-la inteira, mesmo se o objetivo fosse apenas inspecionar alguns metadados. O comando de inspeção do Skopeo mostra as propriedades da imagem, incluindo camadas, tags de imagem e rótulos, para que você não precise levar a imagem ao host. Dessa forma, você reúne informações sobre um repositório ou uma tag sem usar nada da sua capacidade.
O Skopeo também permite excluir uma imagem de um repositório e sincronizar um repositório de imagens externo a um registro interno para obter implantações mais seguras de rede desconectada (também conhecida como isolada). Quando exigido pelo repositório, o Skopeo pode passar as credenciais e os certificados adequados para autenticação.
A sincronização do Skopeo permite cópias diretas de registro para registro para uso online, bem como registro para arquivos e arquivos para registro para preparar ambientes desconectados. Diferentemente da cópia do skopeo, que assume que a cópia solicitada exige ação, a sincronização do skopeo foi ajustada para ser mais rápida em ressincronizações regulares de grandes repositórios com poucas modificações. Além do uso direto da linha de comando, a operação de sincronização pode ser configurada em um arquivo config e que permita a sincronização de apenas um subconjunto de tags de um repositório grande.
Se a inspeção mostrar a necessidade de copiar uma imagem de container de um tipo de local ou armazenamento para outro, é possível fazer isso com o comando de cópia do Skopeo. A ferramenta permite copiar imagens de container entre registros como docker.io, quay.io e seu registro de containers interno ou vários mecanismos de armazenamento no seu sistema local. A cópia direta de registro para registro do Skopeo é rápida e preserva a forma não modificada (e o resumo manifesto da imagem) se o registro de destino permitir. Não é necessário usar nenhum disco local ou ter espaço livre em um disco local para copiar imagens entre registros. O Skopeo também se move entre o armazenamento de plataformas de containers e mesmo entre diretórios. Ele é usado com frequência em sistemas de CI/CD para manter os registros de containers atualizados e manter o armazenamento em servidores de container.
Por que usar o Skopeo?
Ferramentas flexíveis
O Skopeo faz parte de um conjunto modular de ferramentas de container que oferece muitas vantagens. Introduzir mudanças significativas em uma ferramenta monolítica sem corrompê-la para os usuários atuais pode ser um desafio. Ferramentas menores e mais especializadas como Skopeo, Podman e Buildah podem ser aprimoradas com mais rapidez. Com um conjunto de ferramentas, você pode se concentrar em um único objetivo, e novas ferramentas podem ser adicionadas para aumentar a funcionalidade ou experimentar ideias e arquiteturas que podem ser incompatíveis com as ferramentas atuais. Ferramentas menores e mais modulares também são mais fáceis de proteger.
Da mesma maneira como partes da funcionalidade do Podman vêm da biblioteca libpod que permite que o código seja compartilhado com outras ferramentas, a funcionalidade do Skopeo também é implementada em uma biblioteca. A biblioteca de imagens/container do Skopeo é compartilhada por outras ferramentas de container, incluindo Podman, Buildah e CRI-O, além de ser compatível com a interface de linha de comando (CLI) do Docker.
Segurança e acessibilidade
As principais vantagens de usar o Podman, o Skopeo e o Buildah juntos incluem:
- Gerenciamento de containers sem raiz. Os usuários podem criar, executar e gerenciar containers sem exigir processos com privilégios de administrador, tornando seu ambiente de containers mais acessível e reduzindo riscos de segurança.
- Arquitetura sem daemon. Daemons exigem acesso administrativo (ao mesmo tempo em que ignoram a necessidade de verificação de administrador) para ler arquivos, instalar programas, editar aplicações e muito mais. Isso torna os daemons o alvo ideal para hackers que querem controlar seus containers e se infiltrar no sistema de host.
- Integração nativa de systemd. Com o uso do Podman e de ferramentas de container associadas, você pode criar arquivos unitários do systemd e executar containers como serviços de sistema.
Kubernetes
O Kubernetes é uma plataforma de orquestração de containers open source que automatiza grande parte dos processos manuais necessários para implantar, gerenciar e escalar aplicações em containers. Se você executar um sistema de CI/CD dentro do Kubernetes ou usar o Red Hat OpenShift® para criar suas imagens de container, pode ser necessário distribuir essas imagens em diferentes registros de container. O Skopeo é a ferramenta ideal para isso.
Computação de alto desempenho
Os usuários executando um sistema operacional mais antigo no sistema de host podem querer executar o Skopeo ou outras ferramentas para aproveitar as funcionalidades e atualizações mais recentes. Em ambientes de computação de alto desempenho (HPC), é comum que os usuários sem raiz não tenham permissão para instalar pacotes no host. Com o aumento da popularidade do Podman em HPC, basta alguns comandos para executar o container do Skopeo com o Podman para realizar tarefas específicas. Além disso, os usuários não precisam de acesso raiz.
A Red Hat pode ajudar
O Red Hat Enterprise Linux simplifica o desenvolvimento de containers com menos repositórios e mais ferramentas de desenvolvedor. As ferramentas de container como Podman, Buildah e Skopeo estão inclusas na subscrição do Red Hat Enterprise Linux e formam uma base forte para dar suporte às suas necessidades de container e imagem de container. Fazer o upgrade do Red Hat Enterprise Linux ajuda você a se preparar para usufruir de todas as vantagens dessas ferramentas. Além dessas ferramentas, a Red Hat oferece imagens base que funcionam como um alicerce para suas próprias imagens.
Execute, crie e compartilhe imagens de container com as ferramentas de linha de comando do Red Hat Enterprise Linux, a imagem base universal (UBI), o repositório no Red Hat Quay e o repositório complementar, que reduzem a dificuldade de desenvolver containers.
Blog da Red Hat
Tudo relacionado à Red Hat: soluções, treinamentos e certificações Red Hat, casos de sucesso de clientes, novidades dos nossos parceiros e notícias sobre projetos das comunidades open source.