Introdução
Neste desafio, vamos brincar com imagens Docker. Uma imagem de contêiner Docker é um pacote de software leve, autocontido e executável que contém tudo o que é necessário para executar uma aplicação: código, runtime, ferramentas do sistema, bibliotecas do sistema e configurações.
Alterar Imagem Docker
Uma imagem Docker contém um nome de imagem e uma tag de imagem, onde o nome da imagem compreende o endereço do repositório e o identificador da imagem. Nesta subseção, vamos enviar uma imagem Docker criada por outra pessoa para o nosso repositório.
Objetivo
O objetivo é enviar as imagens ubuntu públicas no dockerhub para o seu repositório privado.
Exemplo de Resultado
Aqui está um exemplo do que você deve ser capaz de realizar ao final deste desafio:
Registre-se no
dockerhube faça login.
Baixe a imagem
ubuntu:22.10do docker hub para o nosso servidor local.
Altere a imagem
ubuntu:22.10para o nosso endereço de repositório.
Faça login no docker hub.

Envie a imagem para o repositório remoto.

Requisitos
Para completar este desafio, você precisará:
- Instalar o Docker engine.
- Ter algum conhecimento da linha de comando Docker.
- Uma imagem Docker já existente que precisa ser atualizada
Construir uma Imagem Web
Normalmente, usamos o nginx para executar aplicações estáticas, como websites. Nesta seção, vamos construir nossa imagem web.
Objetivo
Seu objetivo é criar uma imagem de contêiner Docker e empacotar uma aplicação web simples nela, em seguida, usar essa imagem para iniciar o contêiner e torná-lo acessível corretamente.
Exemplo de Resultado
Aqui está um exemplo do que você deve ser capaz de realizar ao final deste desafio:
Crie um novo arquivo chamado
index.htmlno diretório/home/labex/Codecom o conteúdohello labex.
Crie um novo arquivo chamado
Dockerfilecom o seguinte conteúdo
Construa sua imagem web com o formato
your_dockerhub_id/web:1.1.0.
Envie a imagem web criada para o
dockerhub.
Inicie um contêiner chamado
webcomyour_dockerhub_id/web:1.1.0, e também precisamos mapear a porta80para o host.
Use o comando
curlpara visitarhttp://127.0.0.1e verifique se a saída éhello labex.
Requisitos
Para completar este desafio, você precisará:
- Construir com
Dockerfile - Especificar a imagem base como
Nginx:latest - Expor a porta
80noDockerfileusando o comando EXPOSE - Após a conclusão da construção, certifique-se de que o contêiner pode ser executado corretamente e responder a solicitações HTTP
Construção de Imagem Multi-stage
A criação de uma imagem de contêiner geralmente envolve duas etapas:
- Compilar a construção da aplicação.
- Criar a imagem da aplicação.
Esta seção combinará essas duas etapas em um único arquivo Docker para alcançar uma construção em múltiplos estágios.
Para completar esta seção do desafio, preparamos um projeto Hello World em https://github.com/joker-bai/go-hello-world.git.
Objetivo
Seu objetivo é usar uma construção em múltiplos estágios para criar uma imagem de contêiner e usar essa imagem para iniciar um contêiner e torná-lo acessível corretamente.
Exemplo de Resultado
Aqui está um exemplo do que você deve ser capaz de realizar ao final deste desafio:
Crie um diretório
hello-worldno diretório/home/labex/Code.
Crie um
Dockerfileneste diretório com o seguinte conteúdo
Construa a imagem Docker com o formato
your_dockerhub_id/go-hello-world:1.1.0.
Envie a imagem para o docker hub.

Inicie um contêiner chamado
go-hello-worlde exponha a porta8080.
Visite
http://127.0.0.1:8080para verificar se está OK.
Requisitos
Para completar este desafio, você precisará:
- Construir com
Dockerfile - Após a conclusão da construção, certifique-se de que o contêiner pode ser executado corretamente e responder a solicitações HTTP
Resumo
Parabéns pela conclusão de todos os elementos deste desafio, você agora tem a flexibilidade de criar e gerenciar imagens de aplicações.



