Docker Explicado do Jeito Certo: Containers, Imagens e Deploy Moderno

Docker Explicado do Jeito Certo: Containers, Imagens e Deploy Moderno

Aprenda Docker do jeito profissional. Entenda containers, imagens, Dockerfile, volumes, redes, deploy, boas práticas e erros reais de produção.

nexucodeplay08 de maio de 2026
Compartilhar:LinkedInXWhatsAppFacebook

O problema antes do Docker

Clássico:

Na minha máquina funciona.

E no servidor?

Morreu.

Docker resolveu exatamente isso.


O que é Docker?

Docker empacota:

  • aplicação

  • dependências

  • runtime

  • configuração

Tudo dentro de um container.


Container NÃO é máquina virtual

https://images.openai.com/static-rsc-4/Y3NScRMI7_DmLFzgm5XRzuup8hB5q16dzmgpv1Dc3w13Z6V2PKJ3mSj1xofB79dwxlpWvyCdwZcNEbpUJdFGPQ8lL4Y6zGXHGDj44egT5hfwsL0xjh3ilhcgN6b-LNKDqtSFQAiqgwKianmp2k-VjVXPe70I8BxvoFtmNu390nLeYC-HgzgF6i439mRm_aHk?purpose=fullsize

https://images.openai.com/static-rsc-4/OECHqOdaRBReG--LUyLpJFrYWTMSkbXEbfKOuI6HA8YjT35sWPTZIoLuxC5rckM1brrM0VWgFKwHYtNpk2OEFPSXh7r11Y6lEu4EeWXDPG3juT4M5FIz-UFV9GTopYK7zwlatCTaoRxWwhS5rgBTvQMO_BLNXEDk606GZfk_CXn3rtw6TUbl7rqbVM7Q8lYw?purpose=fullsize

https://images.openai.com/static-rsc-4/_jRkTYimGug4ctzD32F4jCn2qSGG2rmu6HZLRTyueS9Aj6p9AuY9FiOArXx5pEicI6dPjEP6m8iNhCO2ePd8Hj_lkl6Trbyyf6PQ8KOgNX78nG3_zwBoLLkIjWjlAeC8V1q850hFbPSjwdiStuq8KPG_Sc4o9UYg9VfyvyTAU5bBbiUyX4e1ZoAl2w3vfdNK?purpose=fullsize

VM:

  • pesado

  • sistema operacional completo

Container:

  • leve

  • rápido

  • compartilha kernel


Conceitos fundamentais

Image

Molde do container.


Container

Instância rodando da image.


Dockerfile

Receita da imagem.


Volume

Persistência de dados.


Network

Comunicação entre containers.


Exemplo real Spring Boot

Dockerfile

FROM eclipse-temurin:21

WORKDIR /app

COPY target/api.jar app.jar

EXPOSE 8080

ENTRYPOINT ["java","-jar","app.jar"]

Build da imagem

docker build -t nexu-api .

Rodando container

docker run -p 8080:8080 nexu-api

Docker Compose

Projeto real usa múltiplos containers.

Exemplo:

  • API

  • PostgreSQL

  • Redis

  • Kafka


docker-compose.yml

services:

  postgres:
    image: postgres:16
    environment:
      POSTGRES_DB: nexu

  api:
    build: .
    ports:
      - "8080:8080"

Persistência com Volumes

Sem volume: desligou container → perdeu dados.


Exemplo

volumes:
  - postgres_data:/var/lib/postgresql/data

Redes Docker

Containers se comunicam pelo nome.

Exemplo:

jdbc:postgresql://postgres:5432/nexu

Multi-stage build

Reduz tamanho da imagem.

FROM gradle:8-jdk21 AS build

COPY . .

RUN gradle build

FROM eclipse-temurin:21

COPY --from=build app.jar app.jar

Erros clássicos

1. Imagem gigante

Java image de 2GB. Clássico.


2. Rodar tudo como root

Perigoso.


3. Não usar .dockerignore

Build lento.


4. Persistência errada

Banco perde tudo.


Docker em produção

Hoje Docker virou padrão.

Usado com:

  • Kubernetes

  • ECS

  • Azure

  • GCP

  • CI/CD


Conclusão

Docker mudou desenvolvimento moderno.

Hoje:

  • backend

  • frontend

  • mobile backend

  • banco

  • fila

  • observabilidade

Tudo roda em containers.

Quem domina Docker sobe muito de nível.

Publicidade

💬 Deixe seu comentário

Deixe um comentário

Comentários passam por moderação para evitar spam e manter a qualidade.

Comentários

Ainda não tem comentários.