Criação de Imagens Docker com Jenkins
Configure tarefas do Jenkins para criar e enviar automaticamente imagens Docker a um registro após alterações no código.
Criação de Imagens Docker com Jenkins é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.
Automatizando compilações do Docker
Compilar imagens do Docker manualmente pode ser demorado, inconsistente e sujeito a erros. Isso é especialmente verdadeiro em um ambiente de equipe ou quando há alterações frequentes no código.
A automação é fundamental para uma entrega de software confiável e eficiente. Nesta lição, aprenderemos a integrar o Jenkins ao Docker para automatizar a criação e o envio de imagens.

Pré-requisitos do Jenkins e do Docker
Para que o Jenkins compile imagens do Docker, ele precisa interagir com um daemon do Docker. Isso significa que o cliente do Docker deve estar instalado na máquina ou no agente em que o trabalho do Jenkins será executado.
Você também precisará de:
- Um servidor Jenkins em execução (da Lição 1)
- Acesso a um registro do Docker (por exemplo, o Docker Hub)
- Uma aplicação de exemplo e seu Dockerfile
Instalação do Docker no host do Jenkins
Para permitir que o Jenkins execute comandos do Docker, certifique-se de que o Docker esteja instalado e configurado no servidor ou agente do Jenkins. O usuário do Jenkins frequentemente precisa de permissões para interagir com o daemon do Docker.
Veja como configurá-lo em um sistema Linux:
sudo apt-get update
sudo apt-get install -y docker.io
sudo usermod -aG docker jenkins
sudo systemctl restart docker
sudo systemctl restart jenkinsProtegendo as credenciais do registro
Para enviar imagens para um registro do Docker, o Jenkins precisa de credenciais. É essencial armazená-las com segurança, e não diretamente no seu Jenkinsfile ou na configuração do trabalho.
O recurso integrado de Credenciais do Jenkins é perfeito para isso:
- Acesse Gerenciar Jenkins > Gerenciar credenciais.
- Adicione uma nova credencial de Nome de usuário com senha para o seu registro do Docker.
- Atribua a ela um ID descritivo (por exemplo,
dockerhub-credentials) para referenciá-la posteriormente.
Aplicativo Flask de exemplo
Vamos usar um aplicativo Flask muito simples em Python. Vamos colocá-lo em um arquivo chamado app.py. Ele exibirá uma mensagem básica de «Hello».
Também precisaremos de um arquivo requirements.txt para especificar nossas dependências do Python.
# app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello from CoddyKit!'
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000)
# requirements.txt
Flask==2.0.2Criando o Dockerfile
Em seguida, definiremos nossa imagem do Docker usando um Dockerfile. Esse arquivo instruirá o Docker sobre como criar a imagem do nosso aplicativo.
Coloque este Dockerfile no mesmo diretório que app.py e requirements.txt.
# Dockerfile
FROM python:3.9-slim-buster
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY app.py .
EXPOSE 5000
CMD ["python", "app.py"]Trabalho do Jenkins: etapa de compilação
Agora, vamos configurar um trabalho Freestyle do Jenkins. Na seção Etapas de compilação, adicione uma etapa Executar shell. Esse comando criará sua imagem do Docker.
Lembre-se de substituir yourusername pelo seu nome de usuário do Docker Hub ou pelo caminho do registro.
# In Jenkins 'Execute shell' build step:
docker build -t yourusername/coddykit-app:latest .Trabalho do Jenkins: etapa de login e envio
Depois de criar a imagem, precisamos enviá-la para o nosso registro do Docker. Normalmente, isso exige fazer login. Usaremos as credenciais armazenadas anteriormente.
Adicione outra etapa Executar shell. Se estiver configurado corretamente, o Jenkins injetará as credenciais como variáveis de ambiente (por exemplo, DOCKER_USER, DOCKER_PASS).
# In Jenkins 'Execute shell' build step:
echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin
docker push yourusername/coddykit-app:latestAutomatizando os acionadores de compilação
O poder da CI/CD vem da automação. O Jenkins pode acionar automaticamente esses trabalhos de compilação e envio com base em vários eventos:
- Consulta do SCM: O Jenkins verifica periodicamente se há novos commits no seu repositório Git.
- Webhooks: Seu provedor Git (GitHub, GitLab, Bitbucket) envia uma notificação ao Jenkins sempre que o código é enviado.
- Projetos upstream: Acionados após a conclusão bem-sucedida de outro trabalho do Jenkins.
Testando o trabalho do Jenkins
Depois de configurar as etapas de compilação e os acionadores, salve o trabalho do Jenkins. Você pode acionar manualmente uma compilação para testá-la. Observe a saída do console para confirmar a criação e o envio bem-sucedidos da imagem do Docker.
Uma execução bem-sucedida significa que seu pipeline de CI agora pode produzir e armazenar automaticamente novas imagens do Docker sempre que o código for alterado!
Verificação rápida
Você configurou um trabalho do Jenkins para criar e enviar uma imagem do Docker. Seu repositório Git tem novas alterações de código.
Recapitulação: compilação e envio
Ótimo trabalho! Nesta lição, você aprendeu a:
- Preparar seu ambiente do Jenkins para interagir com o Docker.
- Gerenciar com segurança as credenciais do registro do Docker no Jenkins.
- Configurar um trabalho do Jenkins para criar uma imagem do Docker usando um Dockerfile.
- Enviar a imagem recém-criada para um registro do Docker.
- Entender diferentes formas de acionar compilações automatizadas.
Automatizar essas etapas é uma parte essencial da Integração Contínua e prepara o caminho para a Entrega Contínua!
Perguntas Frequentes
A aula “Criação de Imagens Docker com Jenkins” é grátis?
Sim — o texto completo de “Criação de Imagens Docker com Jenkins” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.
O que vou aprender em “Criação de Imagens Docker com Jenkins”?
Configure tarefas do Jenkins para criar e enviar automaticamente imagens Docker a um registro após alterações no código. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar DevOps Bootcamp?
Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Criação de Imagens Docker com Jenkins”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de DevOps Bootcamp?
Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Introdução ao Jenkins
- Criação de Imagens Docker com Jenkins
- Implantação Automatizada com Jenkins
- Pipeline do Jenkins como código com Jenkinsfile