Docker – “Na minha máquina funciona”

O que é Docker? Entenda de Vez com um Exemplo Prático e Simples

Se você acompanha o mercado de tecnologia, certamente já ouviu frases como: “Mas na minha máquina funciona!” ou “Depois que mandamos para o servidor, tudo quebrou”. Esse é um dos problemas mais antigos e frustrantes do desenvolvimento de software.

Felizmente, existe uma tecnologia que resolveu isso de uma vez por todas: o Docker.

Neste artigo, vamos entender o que é o Docker, como ele funciona de forma simples e criar a sua primeira imagem personalizada na prática.

O que é o Docker?

O Docker é uma plataforma de conteinerização. Pense nele como a indústria de transporte marítimo: antigamente, carregar navios com produtos de formatos diferentes era um caos. Tudo mudou quando inventaram o container padrão — caixas de metal idênticas onde cabe qualquer coisa dentro e que servem em qualquer navio ou caminhão do mundo.

O Docker faz exatamente isso com o software. Ele empacota a sua aplicação junto com tudo o que ela precisa para rodar (o código, as bibliotecas, o banco de dados e até o sistema operacional mínimo).

Esse “pacote” se chama Container. Se ele funciona no seu computador, ele vai funcionar de forma idêntica no servidor de produção, na nuvem ou na máquina do seu colega de trabalho.

A diferença entre Container e Máquina Virtual (VM)

Muitos confundem os dois, mas a diferença é simples: uma Máquina Virtual simula um computador inteiro (com hardware virtual e um sistema operacional pesado completo). O Container Docker é muito mais leve: ele compartilha o mesmo “núcleo” (kernel) do sistema operacional do seu computador, isolando apenas a sua aplicação. Isso faz com que ele inicialize em segundos e consuma pouquíssima memória.

Na Prática: Criando o seu primeiro Dockerfile

Para criar o seu próprio container, você precisa de uma receita. Essa receita é um arquivo de texto simples chamado Dockerfile.

Imagine que queremos colocar um site super simples em HTML para rodar dentro do Docker usando o servidor web Nginx.

Passo 1: O Arquivo de Receita (Dockerfile)

Crie uma pasta no seu computador e, dentro dela, crie um arquivo com o nome exato de Dockerfile (sem nenhuma extensão como .txt). Dentro dele, cole as seguintes instruções:

# 1. Define a imagem base (vamos usar o servidor web Nginx oficial)
FROM nginx:alpine

# 2. Copia o arquivo do seu site para dentro da pasta padrão do servidor Nginx
COPY ./meu-site /usr/share/nginx/html

# 3. Informa que o container vai rodar na porta 80
EXPOSE 80

(Nota: Certifique-se de ter uma pasta chamada meu-site no mesmo local, contendo um arquivo index.html básico).

Passo 2: Fazendo o “Build” e Rodando a Imagem

Com a receita pronta, nós precisamos transformá-la em uma Imagem (o pacote fechado) e depois colocá-la para rodar (o Container).

Abra o terminal do seu computador dentro da pasta onde está o seu Dockerfile e execute os dois comandos abaixo:

# 1. Transforma o Dockerfile em uma imagem chamada "meu-site-docker"
docker build -t meu-site-docker .

# 2. Cria e liga o container baseado na imagem, liberando o acesso na porta 8080
docker run -d -p 8080:80 meu-site-docker

Pronto! Agora se você abrir o seu navegador de internet e digitar http://localhost:8080, você verá o seu site rodando de dentro de um container Docker isolado do seu sistema operacional.

Conclusão

O Docker revolucionou a forma como criamos e distribuímos software. Ele tira o peso da configuração de ambientes das costas dos desenvolvedores e traz uma agilidade gigante para o time de DevOps na hora de publicar sistemas na nuvem. Entender esse fluxo de construir imagens e rodar containers é o primeiro passo obrigatório para quem quer se destacar na TI moderna.

  • Docker – “Na minha máquina funciona”

    O que é Docker? Entenda de Vez com um Exemplo Prático e Simples Se você acompanha o mercado de tecnologia, certamente já ouviu frases como: “Mas na minha máquina funciona!” ou “Depois que mandamos para o servidor, tudo quebrou”. Esse é um dos problemas mais antigos e frustrantes do desenvolvimento de software. Felizmente, existe uma…