Este repositório tem fins acadêmicos e reúne exemplos práticos de criação de imagens Docker para casos de uso específicos.
A proposta é que cada branch apresente um cenário diferente, com explicações passo a passo sobre como o Dockerfile funciona, como criar a imagem, como executar o container e como acessar ou testar o resultado.
Em vez de concentrar todos os exemplos em uma única branch, este repositório organiza os conteúdos por branches. Assim, cada caso fica mais simples de estudar, comparar e executar.
O objetivo deste repositório é ajudar no aprendizado de Docker por meio de exemplos pequenos, diretos e explicados.
Cada exemplo busca mostrar:
- qual imagem base foi escolhida;
- como os arquivos do projeto são copiados para dentro da imagem;
- quais portas precisam ser expostas;
- quais comandos são executados quando o container inicia;
- como criar a imagem com
docker build; - como executar o container com
docker run; - como acessar a aplicação ou serviço publicado.
Escolha a branch que mais se aproxima do caso de uso que você quer estudar.
Para listar as branches disponíveis:
git branch -aPara trocar para uma branch específica:
git checkout nome-da-branchExemplo:
git checkout container-nginxDepois de entrar na branch desejada, leia o README.md daquela branch e siga o passo a passo.
Branch principal do repositório.
Ela serve como ponto de entrada e explica o caráter geral do projeto. Use esta branch para entender a organização do repositório e decidir qual exemplo estudar.
Exemplo de criação de uma imagem Docker usando Nginx para publicar um site estático.
Esta branch é útil para estudar:
- uso da imagem oficial do Nginx;
- cópia de arquivos HTML, CSS, JavaScript e assets para dentro do container;
- configuração de servidor web;
- publicação de conteúdo estático;
- mapeamento de portas entre máquina local e container.
Exemplo de criação de uma imagem Docker usando Apache Tomcat para executar uma aplicação Java empacotada em .war.
Esta branch é útil para estudar:
- uso da imagem oficial do Tomcat;
- uso de Java dentro do container;
- cópia de arquivo
.warpara a pastawebapps; - publicação da aplicação como
ROOT.war; - execução de aplicações Java web em container.
Use este guia rápido:
Quero publicar um site estático
-> container-nginx
Quero executar uma aplicação Java .war
-> container-tomcat
Quero entender a organização geral do repositório
-> main
Para executar os exemplos, é recomendado ter instalado:
- Docker Desktop;
- Git;
- terminal PowerShell, Prompt de Comando, Git Bash ou equivalente;
- navegador web, quando o exemplo publicar uma aplicação acessível por HTTP.
Docker Desktop:
https://www.docker.com/products/docker-desktop/
Git:
https://git-scm.com/
Após instalar o Docker, verifique se ele está funcionando:
docker --versionTambém é possível verificar se o serviço está ativo:
docker psUma forma recomendada de usar este repositório é:
- Acessar a branch
main. - Escolher o caso de uso desejado.
- Trocar para a branch correspondente.
- Ler o
README.mdda branch. - Conferir o
Dockerfile. - Criar a imagem Docker.
- Executar o container.
- Testar o resultado.
- Comparar com outras branches para entender as diferenças.
git branch --show-currentgit branchgit branch -agit checkout nome-da-branchExemplo:
git checkout container-tomcatgit fetchOs comandos exatos podem variar conforme a branch, mas normalmente os exemplos seguem este padrão:
docker build -t nome-da-imagem .docker run -d -p porta-local:porta-container --name nome-do-container nome-da-imagemPara listar containers em execução:
docker psPara parar um container:
docker stop nome-do-containerPara remover um container parado:
docker rm nome-do-containerPara ver logs:
docker logs nome-do-containerCada branch foi pensada como um exemplo independente. Por isso, arquivos, portas, nomes de imagens e comandos podem mudar de uma branch para outra.
Sempre leia o README.md da branch escolhida antes de executar os comandos.