Marcação e Compartilhamento da Sua Imagem Docker
Agora que criamos uma imagem Docker personalizada, aprenderemos como marcá-la corretamente e prepará-la para compartilhamento. Em um cenário real, você enviaria a imagem para um registro como o Docker Hub, mas neste tutorial, nos concentraremos nas etapas de preparação.
As imagens Docker são identificadas por seu nome de repositório e tag. As tags ajudam no versionamento e na organização das imagens. A tag padrão é latest, mas é uma boa prática usar tags de versão significativas.
Vamos adicionar mais algumas tags à nossa imagem personalizada:
docker tag my-custom-nginx:v1 my-custom-nginx:latest
docker tag my-custom-nginx:v1 my-custom-nginx:stable
Esses comandos criam duas tags adicionais para nossa imagem: latest e stable. Os dados reais da imagem são compartilhados entre todas as três tags, então essa operação é muito eficiente.
Vamos verificar nossas imagens novamente:
docker images
Você deve agora ver várias entradas para my-custom-nginx:
REPOSITORY TAG IMAGE ID CREATED SIZE
my-custom-nginx v1 a1b2c3d4e5f6 10 minutes ago 142MB
my-custom-nginx latest a1b2c3d4e5f6 10 minutes ago 142MB
my-custom-nginx stable a1b2c3d4e5f6 10 minutes ago 142MB
nginx latest 605c77e624dd 2 weeks ago 142MB
Observe que todas as imagens my-custom-nginx têm o mesmo ID da imagem, indicando que são a mesma imagem com tags diferentes.
Preparando para a Distribuição da Imagem
Em um cenário real, você enviaria sua imagem para um registro como o Docker Hub. Para fazer isso, você precisaria:
- Criar uma conta no Docker Hub
- Fazer login no Docker Hub a partir do seu terminal
- Marcar sua imagem com seu nome de usuário do Docker Hub
- Enviar a imagem
Para fins de demonstração, vamos supor que seu nome de usuário do Docker Hub seja seuusuário. Veja como você prepararia sua imagem para envio:
docker tag my-custom-nginx:v1 yourusername/my-custom-nginx:v1
Para enviar a imagem (em um cenário real), você usaria:
## Isso é apenas para demonstração - não enviaremos de fato
## docker push yourusername/my-custom-nginx:v1
Salvando uma Imagem Docker em um Arquivo
Em vez de enviar para um registro, você também pode salvar uma imagem Docker em um arquivo para transferência manual:
docker save -o my-custom-nginx.tar my-custom-nginx:v1
Este comando salva a imagem em um tarball chamado my-custom-nginx.tar. Você pode verificar se o arquivo foi criado:
ls -lh my-custom-nginx.tar
Você deve ver uma saída semelhante a:
-rw------- 1 labex labex 142M Nov 10 12:34 my-custom-nginx.tar
Carregando uma Imagem de um Arquivo
Para carregar uma imagem de um tarball em outra máquina (ou na mesma máquina após remover a imagem), você usaria:
## Não executaremos realmente este comando como parte do tutorial
## docker load -i my-custom-nginx.tar
Exportando a Documentação do Contêiner
Para ajudar outras pessoas a entender sua imagem personalizada, é uma boa prática documentar as alterações que você fez. Vamos criar um arquivo de documentação simples:
cat > my-custom-nginx-doc.txt << EOF
## My Custom Nginx Image
This is a custom Nginx image created by cloning the official Nginx image.
### Changes Made
- Replaced the default welcome page with a custom HTML page
### How to Run
docker run --name my-custom-container -d -p 8080:80 my-custom-nginx:v1
### Version History
- v1: Initial custom version with modified welcome page
EOF
Agora você tem um arquivo de documentação para sua imagem personalizada.
Parabéns! Você aprendeu como marcar sua imagem Docker e prepará-la para compartilhamento. Na próxima etapa, analisaremos algumas práticas recomendadas e limparemos nosso ambiente.