Back-end
Docker: O Futuro da Contenerização Começa Agora
30 de abril de 2013.O Docker revolucionou o desenvolvimento de software ao introduzir a contenerização de aplicativos de maneira acessível e eficiente. Lançado oficialmente em março de 2013, o Docker trouxe uma abordagem inovadora para o gerenciamento de ambientes, permitindo que desenvolvedores criassem, compartilhassem e executassem contêineres de maneira consistente em diferentes plataformas.
Neste artigo, exploraremos como o Docker funciona, seus principais benefícios e como começar a usar esta poderosa ferramenta com um exemplo prático.
O que é Docker?
Docker é uma plataforma de código aberto projetada para facilitar a criação, a implantação e a execução de aplicativos usando contêineres. Um contêiner é uma unidade leve e isolada que inclui tudo o que uma aplicação precisa para ser executada: código, bibliotecas, dependências e configurações.
Benefícios do Docker
- Portabilidade: Contêineres podem ser executados em qualquer máquina com Docker instalado, seja no seu laptop, servidor ou na nuvem.
- Eficiência: Os contêineres usam menos recursos que máquinas virtuais, pois compartilham o mesmo kernel do sistema operacional.
- Isolamento: Cada contêiner é independente, evitando conflitos entre dependências de diferentes aplicações.
- Integração com CI/CD: Docker facilita pipelines de integração e entrega contínuas, simplificando o desenvolvimento e a implantação.
Instalando o Docker
Antes de começar, é necessário instalar o Docker em sua máquina. Siga as instruções no site oficial: https://www.docker.com/.
No terminal, verifique se o Docker foi instalado corretamente:
$ docker --version
Se tudo estiver configurado, você verá a versão do Docker instalada.
Criando seu primeiro contêiner Docker
Vamos criar um contêiner simples que executa um servidor web utilizando o Nginx.
Passo 1: Baixar a imagem do Nginx
O Docker usa imagens como base para criar contêineres. Baixe a imagem oficial do Nginx usando o comando:
$ docker pull nginx
Passo 2: Executar o contêiner
Após baixar a imagem, execute o seguinte comando para iniciar um contêiner Nginx:
$ docker run --name meu-nginx -d -p 8080:80 nginx
--name meu-nginx
: Dá um nome ao contêiner.-d
: Executa o contêiner em segundo plano (modo “detached”).-p 8080:80
: Mapeia a porta 8080 do host para a porta 80 do contêiner.
Acesse http://localhost:8080
no navegador para verificar se o servidor Nginx está em execução.
Passo 3: Listar os contêineres ativos
Para verificar os contêineres em execução, use:
$ docker ps
Passo 4: Parar e remover o contêiner
Para parar o contêiner, use:
$ docker stop meu-nginx
Para remover o contêiner, use:
$ docker rm meu-nginx
Criando sua própria imagem Docker
Agora, vamos criar uma imagem personalizada que executa uma aplicação simples em Python usando Flask.
Passo 1: Criar o aplicativo Flask
- Crie um diretório para o projeto:
$ mkdir flask-app && cd flask-app
- No diretório, crie um arquivo
app.py
com o seguinte conteúdo:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return "Olá, Docker!"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
- Crie um arquivo
requirements.txt
para listar as dependências do projeto:
flask
Passo 2: Criar o Dockerfile
No mesmo diretório, crie um arquivo chamado Dockerfile
com o seguinte conteúdo:
# Usar a imagem base oficial do Python
FROM python:3.9
# Definir o diretório de trabalho dentro do contêiner
WORKDIR /app
# Copiar os arquivos do projeto para o contêiner
COPY . .
# Instalar as dependências do projeto
RUN pip install -r requirements.txt
# Expor a porta 5000
EXPOSE 5000
# Comando para iniciar o aplicativo
CMD ["python", "app.py"]
Passo 3: Construir a imagem Docker
No diretório do projeto, execute o comando para construir a imagem:
$ docker build -t flask-app .
Passo 4: Executar o contêiner
Inicie um contêiner com a imagem recém-criada:
$ docker run -d -p 5000:5000 flask-app
Acesse http://localhost:5000
no navegador para ver a mensagem “Olá, Docker!” exibida pela aplicação Flask.
Conclusão
O Docker transformou a maneira como desenvolvedores criam, testam e implantam aplicações. Com contêineres, é possível garantir consistência e eficiência em todas as etapas do desenvolvimento. Experimente o Docker em seus projetos e descubra como ele pode simplificar o seu fluxo de trabalho!