Docker é uma ferramenta poderosa que permite criar, implantar e executar aplicações em contêineres, porque ele facilita o desenvolvimento, a distribuição e a execução de software de maneira consistente, independentemente do ambiente em que ele está sendo executado. Neste artigo, vamos explorar os conceitos básicos do Docker e do Docker Compose, então você verá como usar essas ferramentas com um exemplo prático em Python.
1. O Que é Docker?
Docker é uma plataforma que utiliza contêineres para empacotar o código de uma aplicação, juntamente com todas as suas dependências, em uma unidade padronizada para o desenvolvimento de software. Isso garante que a aplicação funcione de maneira idêntica em qualquer ambiente.
Principais Componentes do Docker
- Imagem: Uma imagem Docker é um pacote leve e independente, mas que contém tudo o que é necessário para rodar uma aplicação.
- Contêiner: Um contêiner Docker é uma instância em execução de uma imagem. Então, ela é isolado do sistema anfitrião e de outros contêineres.
- Dockerfile: Um Dockerfile é um script com um conjunto de instruções para criar uma imagem Docker.
2. Instalando o Docker
Antes de começar, você precisa instalar o Docker. Siga as instruções no site oficial do Docker para sua plataforma: Install | Docker Docs.
3. Criando uma Imagem Docker
Vamos criar uma imagem Docker para uma aplicação Python simples. Primeiro, crie a estrutura do projeto:
docker_example/ │ ├── app.py └── Dockerfile
Código da Aplicação (app.py)
from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return "Hello, Docker!" if __name__ == '__main__': app.run(host='0.0.0.0')
Escrevendo o Dockerfile
Um Dockerfile é um script com instruções para criar a imagem Docker.
Código do Dockerfile
# Usando a imagem oficial do Python como base FROM python:3.8-slim # Definindo o diretório de trabalho WORKDIR /app # Copiando o arquivo de requisitos e instalando as dependências COPY requirements.txt requirements.txt RUN pip install -r requirements.txt # Copiando o código da aplicação COPY . . # Expondo a porta que a aplicação irá rodar EXPOSE 5000 # Comando para rodar a aplicação CMD ["python", "app.py"]
Arquivo de Requisitos (requirements.txt)
Crie um arquivo requirements.txt para listar as dependências da aplicação. Execute o seguinte comando:
pip freeze > requirements.txt
Construindo e Executando a Imagem Docker
No terminal, navegue até o diretório do projeto e execute os seguintes comandos:
# Construindo a imagem Docker docker build -t my-flask-app . # Executando o contêiner Docker docker run -p 5000:5000 my-flask-app
Abra o navegador e acesse http://localhost:5000 para ver a aplicação em execução.
4. Usando Docker Compose
Docker Compose é uma ferramenta para definir e executar aplicações Docker com múltiplos contêineres. Ele usa um arquivo YAML para configurar os serviços da aplicação.
Estrutura do Projeto com Docker Compose
docker_compose_example/ │ ├── app.py ├── Dockerfile └── docker-compose.yml
Arquivo docker-compose.yml
version: '3.8' services: web: build: . ports: - "5000:5000"
Executando com Docker Compose
No terminal, navegue até o diretório do projeto e execute o seguinte comando:
docker-compose up
Isso construirá a imagem e iniciará o contêiner definido no docker-compose.yml. Acesse http://localhost:5000 no navegador para ver a aplicação em execução.
5. Conclusão
Neste artigo, aprendemos os conceitos básicos do Docker e Docker Compose, criamos uma imagem Docker para uma aplicação Python simples e usamos o Docker Compose para gerenciar contêineres. Docker é uma ferramenta poderosa que facilita o desenvolvimento e a implantação de aplicações, tornando os ambientes de desenvolvimento e produção mais consistentes.
Continuar explorando e experimentando com Docker permitirá que você aproveite ao máximo suas capacidades e crie aplicações robustas e escaláveis.