Docker · 6 min read · Nov 24, 2025

Docker Parte 4: construindo e publicando imagens docker personalizadas

Na primeira e segunda parte, cobrimos os fundamentos de executar um contêiner preparando nosso sistema para gerenciar contêineres docker e o que exatamente significa usar um contêiner docker em comparação com outras tecnologias de virtualização do ponto de vista técnico. Então, na terceira parte, colocamos a mão na massa com imagens docker, aprendemos o básico e criamos nosso primeiro contêiner Notepad usando WordPress ou DokuWiki.

Nesta quarta parte, vamos ver como as imagens docker são construídas e criaremos nossa própria imagem personalizada pronta para ser baixada e compartilhada com nossos amigos, colegas e comunidades.

Para este tutorial, usaremos a imagem Whale Docker. A Whale é a mascote oficial do Docker e a imagem Whale docker se assemelha ao programa cowsay que gera imagens ASCII de uma vaca no terminal com uma mensagem. Ele também pode gerar imagens usando imagens pré-fabricadas de outros animais, como Tux, o Pinguim, e a mascote do Linux.

Introdução aos Arquivos Docker

Na parte anterior, nos apresentamos ao Docker Hub e aprendemos que é um recurso centralizado baseado em nuvem para descoberta de imagens de contêiner, construção de imagens e distribuição dessas imagens. Também aprendemos que uma imagem docker é uma imagem de múltiplas camadas em cima de uma imagem base. Dito isso, usar uma imagem base remove o incômodo de criar do zero um sistema operacional adequado para a imagem docker e nos dá a opção de personalizar as camadas superiores onde nosso software residirá.

Para criar uma imagem personalizada usando uma imagem base, precisamos fornecer ao mecanismo docker instruções sobre como instalar e configurar pacotes e arquivos e também algumas configurações que vão junto. Essas instruções são escritas em um arquivo de texto simples chamado “dockerfile”. Dockerfiles são como receitas que você entrega a um chef e ele/ela cozinha uma ótima refeição para você. Esses arquivos docker são escritos usando um conjunto simples e descritivo de etapas que são chamadas de “instruções”. Cada instrução cria uma nova camada em nossa imagem. As instruções incluem ações como executar um comando, adicionar um arquivo ou diretório, qual processo executar ao iniciar um contêiner a partir da imagem, etc. Esse processo é como você definiria uma série de comandos em um script de shell. Uma vez que você solicita a construção de uma imagem, o Docker lê o dockerfile, executa as instruções e retorna uma imagem final.

Construindo uma Imagem Docker

Existem duas maneiras de construir sua imagem Docker personalizada. Você pode construí-la em seu computador ou pode usar o Docker Hub que falamos anteriormente. Nesta parte, aprenderemos como construir nossa imagem Docker localmente e depois publicá-la no Registro do Docker Hub.

Construindo Localmente usando um Dockerfile

Vamos criar uma Imagem Docker personalizada usando a imagem “Whale say” que é uma pequena Imagem Docker (baseada em uma Imagem Ubuntu) que quando você a executa, ela diz algo que você programou para dizer de volta a você.

Primeiro, abra um terminal e crie uma nova pasta digitando:

mkdir mywhale

Este diretório serve como o “contexto” para sua construção. O contexto apenas significa que contém todas as coisas que você precisa para construir sua imagem com sucesso.

Entre na sua nova pasta com:

cd mywhale

e crie um Dockerfile na pasta digitando:

touch Dockerfile

Agora você deve ver o Dockerfile vazio que criamos se você der o comando ‘ll’:

ll
$ ll  
total 8.0K  
-rw-rw-r-- 1 user user 0 23:26 Dockerfile

Abra-o com seu editor de texto favorito e adicione:

FROM docker/whalesay:latest

Esta primeira linha de instrução, com a palavra-chave FROM, diz ao Docker qual imagem sua imagem é baseada. Você está baseando seu novo trabalho na imagem whalesay existente.

A próxima instrução que vamos adicionar dará à nossa baleia a capacidade de contar uma sorte. Para realizar essa tarefa, usaremos o pacote fortune que está disponível nos repositórios do Ubuntu (lembre-se de que a imagem da baleia é baseada em uma imagem Ubuntu). O programa fortunes tem um comando que imprime ditados sábios para nossa baleia dizer.

Então, o primeiro passo é instalá-lo. Para fazer isso, adicionamos a instrução usual de instalação apt:

RUN apt -y update && apt -y install fortunes

Uma vez que a imagem tenha o software de que precisa, você instrui o software a ser executado quando a imagem for carregada. Para fazer isso, adicionamos a seguinte instrução:

CMD /usr/games/fortune -a | cowsay

A linha acima diz ao programa fortune para enviar uma citação escolhida aleatoriamente para o programa cowsay.

E estamos prontos! Agora salve o arquivo e saia.
Você pode verificar o que fez executando “cat Dockerfile” para que seu Dockerfile fique assim:

cat Dockerfile
FROM docker/whalesay:latest  
RUN apt-get -y update && apt-get install -y fortunes  
CMD /usr/games/fortune -a | cowsay

Agora que tudo (esperançosamente) parece bom, é hora de construir nossa Imagem Docker (não se esqueça do ponto . no final do comando):

docker build -t my-docker-whale .

O comando acima pega o Dockerfile na pasta atual e constrói uma imagem chamada “my-docker-whale” em sua máquina local.

Você pode verificar se sua imagem Docker está realmente armazenada em seu computador com:

docker images

Então você pode executar sua imagem Docker digitando o seguinte:

docker run my-docker-whale

Uma vez que ela é executada, você verá algo como a imagem a seguir

A imagem Docker Whale

Publicando sua Imagem Docker Personalizada no Docker Hub

Sua próxima opção é publicar a imagem Docker criada no Repositório Docker Hub. Para fazer isso, você precisará criar uma conta na página de inscrição do Docker Hub onde fornecerá um nome, senha e endereço de e-mail para sua conta. Também devo apontar que o serviço Docker Hub é gratuito para imagens docker públicas. Uma vez que você tenha criado sua conta, pode enviar a imagem que você criou anteriormente, para torná-la disponível para outros usarem.

Para fazer isso, você precisará do ID e do TAG da sua imagem “my-docker-whale”.

Execute novamente o comando “docker images” e anote o ID e o TAG da sua imagem Docker, por exemplo, a69f3f5e1a31.

Agora, com o seguinte comando, prepararemos nossa Imagem Docker para sua jornada ao mundo exterior (a parte do nome da conta do comando é o seu nome de conta na página de perfil do Docker Hub):

docker tag a69f3f5e1a31 accountname/my-docker-whale:latest

Execute o comando “docker images” e verifique sua nova imagem marcada.

Em seguida, use o comando “docker login” para fazer login no Docker Hub a partir da linha de comando.

O formato para o comando de login é:

docker login --username=seunomehub [email protected]

Quando solicitado, insira sua senha e pressione enter.

Agora você pode enviar sua imagem para o repositório recém-criado:

docker push accountname/my-docker-whale

O comando acima pode levar um tempo para ser concluído, dependendo da largura de banda de upload da sua conexão, pois faz o upload de algo em torno de 180MB de dados (em nosso exemplo). Uma vez concluído, você pode ir ao seu perfil no Docker Hub e conferir sua nova imagem.

Baixando sua Imagem Personalizada

Se você quiser puxar sua imagem do repositório do Docker Hub, precisará primeiro excluir a imagem original de sua máquina local porque o Docker se recusaria a puxar do hub, já que as imagens local e remota são idênticas.

Como você se lembra da parte anterior, para remover uma imagem docker, você deve executar o comando “docker rmi”. Você pode usar um ID ou o nome para remover uma imagem:

docker rmi -f a69f3f5e1a31

Agora que a imagem foi excluída, você pode puxar e carregar a imagem do seu repositório usando o comando “docker run” incluindo seu nome de conta do Docker Hub.

docker run accountname/my-docker-whale

Como anteriormente excluímos a imagem e ela não estava mais disponível em nosso sistema local, o Docker a baixará e armazenará no local designado.

Resumo

Nesta parte, aprendemos como criar um arquivo Docker, escrever algumas instruções básicas e construir uma imagem usando-o como uma receita. Também cobrimos o básico de enviar nossa nova imagem personalizada para o registro do Docker Hub e puxá-la para nossa máquina local. Na próxima parte desta série de tutoriais Docker, mostrarei como podemos automatizar o procedimento de construção da imagem para que possamos criar imagens personalizadas instantaneamente sempre que precisarmos delas! Fique ligado.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.