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
nginxmais recente do registrodocker.iousando o comandopodman. - Execute um contêiner a partir da imagem
nginxe verifique se ele está operacional.
Requisitos
- O contêiner
nginxdeve ser nomeado comomy-nginx. - O contêiner deve ser executado em segundo plano (modo detached).
- A porta
80do contêiner deve ser mapeada para a porta8080em 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>
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-nginxque está em execução. - Redirecione a saída da inspeção para um arquivo.
Requisitos
- Use o comando
podman inspectpara obter detalhes sobre o contêinermy-nginx. - Salve a saída JSON em um arquivo chamado
nginx-inspect.jsondentro 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": {
...
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
skopeopara copiar a imagemnginx:latestdodocker.iopara 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.confpara configurarlocalhost:5000como um registro inseguro usando o formato v2. Você precisará de privilégios desudopara isso. - Use
skopeo copypara copiar a imagemdocker.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 pullpara recuperarlocalhost:5000/my-local-nginx:latest.
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.



