Contêineres Docker para aplicações em Python
O Docker é uma plataforma de código aberto que permite construir, enviar e executar aplicações Python em contêineres, facilitando suas implantações em diferentes ambientes.

Receba nossa newsletter

Contêineres Docker para aplicações em Python

contêineres Docker

À medida que o campo de Inteligência Artificial (IA) e machine learning continua a crescer, também aumentam as complexidades das aplicações feitas em Python. Com a demanda crescente por escalabilidade, confiabilidade e manutenção, desenvolvedores estão se voltando para a conteinerização como uma solução.

Neste post, exploraremos como o uso de contêineres Docker pode beneficiar sua aplicação em Python e forneceremos um passo a passo para começar a adicioná-los aos seus projetos.

O que são contêineres Docker?

O Docker é uma plataforma de código aberto que permite que você construa, envie e execute aplicações em contêineres. Ou seja, ele possibilita empacotar seus aplicativos e dependências em contêineres leves e portáteis. Ele oferece suporte a arquiteturas de microsserviços, em que cada serviço pode ser executado em seu próprio contêiner com suas próprias dependências. Através desta capacidade, o Docker se tornou uma ferramenta essencial para o desenvolvimento de softwares e aplicativos, pois ele permite que as equipes criem, testem e implantem facilmente aplicativos em diferentes ambientes.

Os contêineres oferecem uma maneira leve e portátil de empacotar uma aplicação, suas dependências e o ambiente em que ela é executada, o que facilita muito tanto a sua implantação quanto o gerenciamento.

O Docker oferece suporte para inúmeras linguagens de programação, incluindo, é claro, Python.

Benefícios de Usar Contêineres Docker para Aplicações em Python

Mas por que usar um contêiner para empacotar a sua aplicação? Existem vários benefícios que tornam os contêineres Docker uma ferramenta essencial em muitos cenários. Veja os principais:

1. Leveza: contêineres Docker são muito mais leves que as tradicionais máquinas virtuais tipicamente usadas para isolamento de aplicações. A leveza dos contêineres significa menos recursos para suas execuções.

2. Portabilidade: os contêineres são altamente portáveis, permitindo que você execute sua aplicação em qualquer máquina que suporte Docker, sem se preocupar com problemas de compatibilidade.

3. Isolamento: contêineres Docker oferecem um nível elevado de isolamento entre aplicações. Esse isolamento garante que cada contêiner seja executado de forma independente, sem interferir com outros contêineres ou com o sistema hospedeiro.

4. Uso Eficiente de Recursos: contêineres usam apenas o que precisam, reduzindo desperdícios e minimizando a sobrecarga.

5. Escalabilidade: o Docker facilita a ampliação horizontal de aplicativos Python através da adição de mais contêineres.

Etapas preparatórias para configurar um contêiner do Docker para um projeto Python

Antes de começar a usar o Docker com Python, você precisará instalá-lo em seu computador. O Docker está disponível para Windows, Mac e Linux. Para instalar o Docker, acesse o site oficial e vá à página de downloads, onde você pode escolher seu sistema operacional e seguir as instruções de instalação.

Para encapsular seu aplicativo Python em um Docker contêiner, organize o código do seu aplicativo Python em um diretório de projeto (por exemplo, meu-projeto-python/). Inclua seu arquivo principal no diretório (por exemplo, arquivo main.py ou app.py). Liste suas dependências em um arquivo requirements.txt usando pip freeze > requirements.txt.

Criação de um Dockerfile

Para começar a usar contêineres Docker em seus aplicativos, após instalar o Docker para seu sistema operacional (link) e preparar a pasta do projeto como explicado acima, você precisara criar um Dockerfile.

Crie um arquivo Dockerfile na pasta do seu projeto. O Dockerfile deve ser colocado no diretório principal do seu projeto.

Um Dockerfile define como sua imagem de contêiner é criada. Ele especifica a imagem base, configura seu ambiente e instala quaisquer dependências necessárias. Veja um exemplo básico de Dockerfile:
				
					FROM python:3.12
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
				
			
Vamos entender esse Dockerfile a partir de seus comandos:
FROM: define a imagem base que seu contêiner usará – nesse caso, a imagem padrão do Python 3.12 do repositório do Docker Hub.
COPY: copia o aplicativo Python e requirements.txt arquivo para a pasta do aplicativo na imagem do contêiner.
WORKDIR: muda o diretório de trabalho atual para a pasta do aplicativo.
RUN: neste exemplo, o comando RUN usa pip para instalar todas as bibliotecas Python de que seu aplicativo precisará.
CMD: especifica o comando que seu contêiner executará na inicialização.
 
Ou seja, o Dockerfile do exemplo acima especifica que queremos usar a imagem do Python 3.12 como base para nossa imagem do Docker. Ele também copia todos os arquivos no diretório atual para o diretório “/app” dentro do contêiner e define o diretório de trabalho como “/app”, instala todos os requisitos especificados em um arquivo “requirements.txt” e executa o código principal do projeto “app.py” quando o contêiner for iniciado.

Criação e execução do Contêiner

Após criar um Dockerfile no seu projeto, será preciso criar sua imagem. Construa sua imagem de contêiner executando o comando (no terminal):

				
					docker build -t my-python-app .
				
			

Este comando cria uma imagem de contêiner chamada my-python-app a partir do Dockerfile.

Após a criação da imagem, execute o contêiner com o comando:

				
					docker run my-python-app 
				
			

Exemplo simples

Para ilustrar a criação de um contêiner simples, primeiro criamos um diretório chamado app para conter nosso projeto. Nele, criamos um arquivo requirements.txt onde especificamos nossas dependências. Usaremos NumPy. Portanto, nosso requirements.txt consiste em uma linha:

				
					numpy==2.2.0
				
			

Também criamos um código principal para o projeto chamado app.py.

				
					print("Oi, mundo com Docker!")

import numpy as np
meu_arr = np.arange(0, 10, 1)
print(meu_arr)
				
			

Veja a estrutura de nosso diretório app abaixo:

docker

Em seguida, criamos o Dockerfile como explicado acima.

				
					FROM python:3.12
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
				
			

Depois, usamos o comando abaixo para criar a imagem do contêiner (chamada myapp nesse exemplo):

				
					docker build -t myapp .
				
			

No Linux, é provável que você precise usar sudo. Por fim, executamos o contêiner com o comando:

				
					docker run myapp
				
			

Ao executar o contêiner, ele executa o código app.py:

				
					Oi, mundo com Docker!
[0 1 2 3 4 5 6 7 8 9]
				
			

Se voce modificar suas dependências ou arquivo app.py, será preciso criar a imagem novamente antes de executá-la.

Conclusão

O uso de contêineres do Docker para aplicativos Python oferece uma variedade de benefícios, desde implantação leve e portátil até uso e isolamento eficientes de recursos.

Fique ligado para mais tópicos interessantes sobre IA e Python!

Imagem com IA Generativa – Dia 597

IA generativa - img597

Arte com IA generativa: imagem do dia

Todos os dias postamos um exemplo de imagem artística gerada com inteligência artificial.

Tutoriais

Postagens Mais Recentes

Outras Postagens Que Podem Interessar

Veja
Mais

Fique em contato

Se inscreva para receber nossa newsletter com novidades.

aprendiz artificial