O que é Docker?

Com a crescente demanda por soluções ágeis, escaláveis e portáteis no desenvolvimento de software, o Docker tem se destacado como uma poderosa ferramenta que revolucionou a maneira como aplicações são construídas, distribuídas e executadas.

Baseado na ideia de automatizar a implantação de aplicações por meio de contêineres, o Docker tem ganhado popularidade e notoriedade na comunidade de desenvolvimento devido a sua versatilidade, agilidade e eficiência.

Mas afinal, o que é Docker, para que ele serve e como funciona na prática? Neste artigo, você encontrará a resposta para cada uma dessas perguntas. Vamos começar?

1 – O que é Docker e para que serve?

O Docker é uma plataforma de código aberto que permite automatizar o empacotamento, a distribuição e a execução de aplicações em containers. Um container é uma unidade leve, portátil e autossuficiente que contém tudo o que uma aplicação precisa para funcionar: código, bibliotecas, dependências, variáveis de ambiente e arquivos de configuração.

Diferente das tradicionais máquinas virtuais, que emulam sistemas operacionais inteiros, os containers compartilham o núcleo (kernel) do sistema operacional do host, sendo muito mais leves e rápidos.

O Docker permite criar ambientes isolados que garantem que uma aplicação funcione da mesma forma em qualquer lugar — seja em um ambiente de desenvolvimento, em servidores de teste ou em ambientes de produção.

Em suma, o Docker serve para:

  • Facilitar a criação de ambientes consistentes para desenvolvimento, testes e produção;
  • Simplificar o processo de distribuição e implantação de software;
  • Isolar aplicações e serviços;
  • Aumentar a escalabilidade e a portabilidade dos sistemas.

1.1 – Principais características do Docker

As principais características dessa ferramenta incluem:

  • Portabilidade: um container pode ser executado em qualquer lugar que tenha o Docker instalado (Windows, Linux, macOS, servidores em nuvem, etc.).
  • Leveza: os containers utilizam menos recursos que máquinas virtuais, pois compartilham o mesmo kernel do sistema operacional.
  • Isolamento: cada container roda de forma isolada, evitando conflitos entre aplicações e versões de bibliotecas.
  • Rapidez na inicialização: containers iniciam quase instantaneamente.
  • Reprodutibilidade: através dos arquivos Dockerfile, é possível versionar e reproduzir exatamente o mesmo ambiente em diferentes máquinas.
  • Escalabilidade: a integração com ferramentas como Kubernetes, o que agiliza e facilita a escalabilidade de aplicações em ambientes distribuídos.

2 – Como surgiu o Docker?

A ideia de isolamento de processos e contêineres não é nova, existindo conceitos similares há décadas, desde os antigos sistemas Unix (como LXC). No entanto, o Docker popularizou e simplificou significativamente o uso de contêineres, tornando-os acessíveis a um público muito mais amplo.

No ano de 2010, o Docker nasceu, originalmente, para uso interno da empresa de plataforma como serviço (PaaS) DotCloud (que posteriormente mudou seu nome para Docker Inc.), fundada por Solomon Hykes na França.

Foi em março de 2013 que o Docker foi lançado ao público como um projeto de código aberto. Sua facilidade de uso, a vasta comunidade que se formou ao redor e a solução eficaz para os desafios de implantação rapidamente impulsionaram sua adoção em todo o mundo.

A visão por trás do Docker era fornecer uma maneira padronizada e portátil de empacotar e executar aplicações, independentemente da infraestrutura subjacente. Essa abordagem resolveu muitos dos problemas enfrentados por desenvolvedores e equipes de operações, como inconsistências de ambiente, dificuldades de implantação e lentidão no ciclo de desenvolvimento.

3 – Como instalar o Docker?

A instalação do Docker varia conforme o sistema operacional. Abaixo, vamos ver os passos básicos de instalação para os principais sistemas:

3.1 – Windows e macOS

  1. Acesse o site oficial clicando aqui.
  2. Baixe a versão Docker Desktop para o seu sistema.
  3. Siga as etapas do assistente de instalação.
  4. Após instalado, abra o Docker Desktop e aguarde a inicialização do serviço.

3.2 Linux (exemplo para sistemas Ubuntu):

No terminal do Linux, execute os seguintes comandos.

sudo apt update
sudo apt install docker.io -y
sudo systemctl enable docker
sudo systemctl start docker

Com os passos acima, você conseguirá instalar o Docker de forma rápida e fácil em sistemas operacionais Linux. Mas, caso seja necessário, na página oficial do Docker, neste link aqui, você encontra tutoriais mais detalhados, inclusive para outras distribuições Linux além do Ubuntu.

4 – Utilizando o Docker na prática

Para melhorar seu entendimento de Docker vamos elaborar um exemplo simples e prático que lhe ajudará a compreender o funcionamento da ferramenta. Para começar, vamos verificar a versão instalada em seu sistema, executando o comando abaixo no terminal:

docker --version

Esse comando irá retornar a versão instalada em seu sistema, confirmando que as etapas executadas no item anterior foram bem sucedidas.

Agora vamos executar um servidor web (por exemplo, Nginx), com o seguinte comando:

docker run -d -p 8080:80 nginx

Acesse http://localhost:8080 e você verá a página padrão do Nginx rodando em um container.

4.1 – Criando uma aplicação Node.js

Para este exemplo vamos criar uma simples aplicação em Node.js que apresentará uma simples mensagem na tela do usuário. A estrutura do nosso projeto será a seguinte::

meu-app-node/
├── app.js
├── package.json
└── Dockerfile

Vamos criar o arquivo app.js:

const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('Olá, esta é uma aplicação Node.js rodando em um container Docker!');
});

app.listen(port, () => {
  console.log(`Servidor rodando em http://localhost:${port}`);
});

O próximo arquivo que criaremos é o package.json:

{
  "name": "meu-app-node",
  "version": "1.0.0",
  "main": "app.js",
  "scripts": {
    "start": "node app.js"
  },
  "dependencies": {
    "express": "^4.18.2"
  }
}

Por fim, vamos criar nosso Dockerfile:

# Usa uma imagem oficial do Node.js
FROM node:18

# Cria diretório da aplicação
WORKDIR /app

# Copia arquivos para o container
COPY package*.json ./
RUN npm install

COPY . .

# Expõe a porta 3000
EXPOSE 3000

# Comando para iniciar a aplicação
CMD ["npm", "start"]

4.2 – Executando o container

No seu terminal, navegue até a pasta onde estão os arquivos do seu projeto Node.js e execute o seguinte comando para construir a imagem Docker:

docker build -t meu-app-node .

Agora, vamos executar o container:

docker run -d -p 3000:3000 meu-app-node

Abra seu navegador web e acesse http://localhost:3000

Ao acessar esse endereço você visualizará essa mensagem na tela: “Olá, esta é uma aplicação Node.js rodando em um container Docker!”

Veja como é simples executar uma aplicação Node.js a partir de um container Docker. E o mais interessante de tudo, é que podemos usufruir dos recursos oferecidos pelo Docker para praticamente qualquer linguagem ou tipo de aplicação, mostrando a versatilidade dessa ferramenta e o grande número de possibilidades que temos com ela.

Conclusão

O Docker é uma ferramenta poderosa que transformou o modo como desenvolvedores e equipes de operações criam, testam e implantam aplicações. Com ele, é possível garantir ambientes consistentes, escaláveis e eficientes, otimizando processos de desenvolvimento e entrega contínua.

Se você ainda não experimentou, vale a pena começar — o Docker pode ser um divisor de águas no seu fluxo de trabalho, aumentando a sua produtividade e a qualidade de suas entregas.

Espero que este conteúdo seja útil de alguma forma para você. Se gostou do conteúdo, compartilhe com seus amigos e aproveite para acessar os outros artigos deste site — tem muito mais esperando por você!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *