Gerenciar Contêineres com Podman e Skopeo

Red Hat Enterprise LinuxBeginner
Pratique Agora

Introdução

Como administrador de sistemas que trabalha com Red Hat Enterprise Linux (RHEL), gerenciar aplicações conteinerizadas é uma habilidade fundamental. Neste desafio, você utilizará as ferramentas de linha de comando podman e skopeo para realizar tarefas essenciais de gerenciamento de contêineres. Você praticará o download de imagens de um registro público, a execução delas como contêineres, a inspeção de suas configurações e a cópia de imagens para um registro local.

Baixar e Executar uma Imagem de Contêiner

Sua primeira tarefa é baixar uma imagem de contêiner de um registro público e executá-la em seu sistema local. Você usará a imagem do servidor web nginx, uma escolha popular para demonstrar funcionalidades de contêineres.

Tarefas

  • Baixe a imagem de contêiner nginx mais recente do registro docker.io usando o comando podman.
  • Execute um contêiner a partir da imagem nginx e verifique se ele está operacional.

Requisitos

  • O contêiner nginx deve ser nomeado como my-nginx.
  • O contêiner deve ser executado em segundo plano (modo detached).
  • A porta 80 do contêiner deve ser mapeada para a porta 8080 em sua máquina local.

Exemplo

Após executar o contêiner com sucesso, você pode testar sua acessibilidade. O comando curl deve retornar a página de boas-vindas padrão do Nginx.

$ curl http://localhost:8080

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...
</html>
✨ Verificar Solução e Praticar

Inspecionar um Contêiner

Após executar um contêiner, muitas vezes é necessário obter informações detalhadas sobre sua configuração, definições de rede e volumes montados. O comando podman inspect fornece essas informações em um formato JSON estruturado.

Tarefas

  • Inspecione o contêiner my-nginx que está em execução.
  • Redirecione a saída da inspeção para um arquivo.

Requisitos

  • Use o comando podman inspect para obter detalhes sobre o contêiner my-nginx.
  • Salve a saída JSON em um arquivo chamado nginx-inspect.json dentro do diretório ~/project/containers/.

Exemplo

O arquivo nginx-inspect.json conterá um grande array JSON com todos os detalhes de configuração do contêiner. Você pode visualizar seu conteúdo com o comando cat ou less.

$ cat ~/project/containers/nginx-inspect.json
[
    {
        "Id": "a933dd...c8e",
        "Created": "2023-10-27T10:30:00.123456789Z",
        "Path": "/docker-entrypoint.sh",
        "Args": [
            "nginx",
            "-g",
            "daemon off;"
        ],
        "State": {
...
✨ Verificar Solução e Praticar

Copiar uma Imagem de Contêiner com Skopeo

O skopeo é uma ferramenta poderosa para mover imagens de contêiner entre diferentes tipos de armazenamento, como registros públicos, armazenamento local e registros privados. Nesta etapa, você copiará a imagem nginx para um registro de contêiner local que está rodando em sua máquina.

Por padrão, o Podman e o Skopeo não enviam imagens para um registro inseguro (HTTP). Você deve primeiro configurar seu sistema para confiar no registro local usando o formato moderno de configuração de registro v2.

Tarefas

  • Configure seu sistema para permitir o envio de imagens para o registro local inseguro em localhost:5000.
  • Use o skopeo para copiar a imagem nginx:latest do docker.io para o seu registro local.
  • Baixe a imagem do seu registro local para o armazenamento local do Podman para verificar se a cópia foi bem-sucedida.

Requisitos

  • Edite o arquivo /etc/containers/registries.conf para configurar localhost:5000 como um registro inseguro usando o formato v2. Você precisará de privilégios de sudo para isso.
  • Use skopeo copy para copiar a imagem docker.io/library/nginx:latest.
  • O destino da imagem no registro local deve ser localhost:5000/my-local-nginx:latest.
  • Após a cópia, use podman pull para recuperar localhost:5000/my-local-nginx:latest.
✨ Verificar Solução e Praticar

Resumo

Neste desafio, você aprendeu as habilidades essenciais para gerenciar contêineres em um sistema Red Hat Enterprise Linux. Você utilizou com sucesso o podman para baixar uma imagem, executá-la como um contêiner nomeado com mapeamento de porta e inspecionar sua configuração detalhada. Além disso, praticou uma tarefa crítica do mundo real: configurar um registro inseguro e usar o skopeo para copiar uma imagem de uma fonte pública para um registro privado local. Esses comandos são ferramentas fundamentais para qualquer administrador de sistemas que trabalhe em um ambiente moderno e conteinerizado.