Aprendar a usar o Docker + Python

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.

Rolar para cima