Se você está começando com Docker, este é o guia completo que você precisa. Vamos explicar o que é Docker de forma simples, criar seu primeiro container, entender imagens, volumes, redes e muito mais. Ideal para quem está aprendendo DevOps ou deseja turbinar seu fluxo de desenvolvimento!
O que é Docker?
Docker é uma plataforma que permite empacotar aplicações e suas dependências em containers, de forma leve, portátil e reproduzível. Pense no container como uma "caixinha" que leva tudo o que sua aplicação precisa para funcionar, independente do sistema operacional.
Analogia: Imagine que sua aplicação é um aplicativo móvel. Para funcionar, ela precisa de um sistema operacional, bibliotecas, atualizações... Agora imagine que você pode empacotar tudo isso num único pacote que funciona em qualquer lugar — isso é um container!
Por que usar Docker?
- Você evita o clássico "na minha máquina funciona".
- É fácil mover aplicações entre ambientes (desenvolvimento, testes, produção).
- É mais leve e rápido que máquinas virtuais.
- Ajuda no versionamento e automação de ambientes.
Como o Docker funciona por trás dos panos?
O Docker utiliza recursos do kernel do Linux como namespaces e cgroups para isolar processos e limitar recursos. Ele roda containers com base em imagens (camadas empilhadas), que são como "snapshots" de um sistema de arquivos.
Instalação do Docker
- Windows/Mac: instale o Docker Desktop
- Linux (Ubuntu):
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
Verificando a instalação
docker --version
Saída esperada: Docker version 24.x.x, build xxxxxxx
Primeiros comandos com Docker
Rodando o clássico Hello World
docker run hello-world
O Docker baixa a imagem hello-world
do Docker Hub (repositório público de imagens), roda um container temporário e imprime uma mensagem.
Entendendo o comando
docker
– a ferramenta de linha de comando
run
– cria e executa um container
hello-world
– a imagem usada
Rodando um container interativo com Ubuntu
docker run -it ubuntu
Você terá acesso ao terminal do Ubuntu dentro de um container. Experimente usar comandos:
ls
pwd
apt update
Para sair do terminal do container:
exit
– encerra o container
Ctrl + P
+Ctrl + Q
– sai sem encerrar
Compreendendo imagens Docker
Uma imagem Docker é como uma "receita congelada". Ela contém um sistema de arquivos com tudo o que sua aplicação precisa.
Para listar imagens locais:
docker images
Para remover imagens:
docker rmi nome_ou_id
Criando sua própria imagem com Dockerfile
1. Crie um arquivo index.html
:
<h1>Meu site com Docker</h1>
2. Crie o Dockerfile
:
FROM nginx:alpine
COPY index.html /usr/share/nginx/html/index.html
3. Construa a imagem:
docker build -t meu-site
4. Rode o container:
docker run -d -p 8080:80 meu-site
5. Acesse: http://localhost:8080
Volumes: persistência de dados
Por padrão, dados em containers são descartáveis. Para mantê-los entre execuções, usamos volumes.
Exemplo com volume:
docker run -d -v meu_volume:/app/data alpine
Agora, o diretório /app/data
dentro do container será mapeado para o volume meu_volume
no host.
Redes entre containers
Containers podem se comunicar por meio de redes Docker. Exemplo:
docker network create minha-rede
docker run -d --name banco --network minha-rede postgres
docker run -d --name app --network minha-rede meu-app
Agora, o container app
pode se comunicar com banco
usando o nome do container como host!
Erros comuns e como resolver
- Permissão negada ao rodar Docker: use
sudo docker
ou adicione seu usuário ao grupo Docker.
- Porta já em uso: verifique com
lsof -i :8080
ou mude a porta com-p 8081:80
- Imagem não encontrada: verifique se escreveu o nome corretamente ou faça
docker pull nome
Boas práticas com Docker
- Use imagens leves (ex:
alpine
) sempre que possível
- Minimize o número de camadas no
Dockerfile
- Evite executar containers como
root
- Use
.dockerignore
como se fosse um.gitignore
para evitar enviar arquivos desnecessários
Próximos passos para estudar
- Aprender Docker Compose para orquestrar múltiplos containers
- Explorar Docker Hub e criar sua conta para publicar imagens
- Estudar Kubernetes como próximo nível para gerenciamento de containers
Conclusão
Você aprendeu os fundamentos do Docker, rodou containers, criou imagens, entendeu volumes e redes, além de boas práticas e próximos passos. Docker é uma habilidade indispensável no mundo DevOps e com o que você viu aqui, já pode começar a usar em seus próprios projetos.
Se gostou desse tutorial, compartilhe com outros desenvolvedores e continue acompanhando o blog para mais conteúdos práticos e completos!
Comentários
Postar um comentário
Obrigado pelo seu feedback!