Como Executar um Script Python Usando Docker

Executar scripts Python é uma das tarefas mais comuns em automação. No entanto, gerenciar dependências em diferentes sistemas pode ser desafiador. É aí que o Docker entra. O Docker permite que você empacote seu script Python junto com todas as suas dependências necessárias em um contêiner, garantindo que ele seja executado da mesma forma em qualquer máquina. Neste guia passo a passo, vamos percorrer o processo de criação de um script Python da vida real e executá-lo dentro de um contêiner Docker.
Por que Usar Docker para Scripts Python
Quando você está trabalhando com scripts Python, as coisas podem ficar bagunçadas/complexas muito rapidamente. Projetos diferentes precisam de bibliotecas diferentes, e o que funciona na sua máquina pode quebrar na de outra pessoa. O Docker resolve isso empacotando seu script e seu ambiente juntos. Assim, em vez de dizer “Funciona na minha máquina”, você pode ter certeza de que funciona da mesma forma em qualquer lugar.
Ele também mantém seu sistema limpo. Você não precisa instalar todos os pacotes Python globalmente ou se preocupar com conflitos de versão. Tudo fica dentro do contêiner.
Se você está implantando ou passando seu script para outra pessoa, o Docker facilita isso também. Sem instruções de configuração, sem “instale isso e aquilo”. Apenas um comando, e ele roda.
Escreva o Script Python
Vamos criar um diretório de projeto para manter seu script Python e o Dockerfile. Uma vez criado, navegue até este diretório usando o comando cd:
mkdir docker_file_organizer
cd docker_file_organizerCrie um script chamado “organize_files.py” para escanear um diretório e agrupar arquivos em pastas com base em suas extensões:
nano organize_files.pyCole o seguinte código no arquivo “organize_file.py”. Aqui, usamos dois módulos Python pré-construídos, chamados os e shutil, para manipular arquivos e criar diretórios dinamicamente:
import os
import shutil
SOURCE_DIR = "/files"
def organize_by_extension(directory):
try:
for fname in os.listdir(directory):
path = os.path.join(directory, fname)
if os.path.isfile(path):
ext = fname.split('.')[-1].lower() if '.' in fname else 'no_extension'
dest_dir = os.path.join(directory, ext)
os.makedirs(dest_dir, exist_ok=True)
shutil.move(path, os.path.join(dest_dir, fname))
print(f"Movido: {fname} → {ext}/")
except Exception as e:
print(f"Erro ao organizar arquivos: {e}")
if __name__ == "__main__":
organize_by_extension(SOURCE_DIR)Neste script, organizamos arquivos em um diretório dado com base em suas extensões. Usamos o módulo os para listar os arquivos, verificar se cada item é um arquivo, extrair sua extensão e criar pastas nomeadas de acordo com essas extensões (se ainda não existirem). Em seguida, usamos o módulo shutil para mover cada arquivo para sua pasta correspondente. Para cada movimento, imprimimos uma mensagem mostrando a nova localização do arquivo.
Crie o Dockerfile
Agora, crie um Dockerfile para definir o ambiente no qual seu script será executado:
FROM python:latest
LABEL maintainer="[email protected]"
WORKDIR /usr/src/app
COPY organize_files.py .
CMD ["python", "./organize_files.py"]Usamos este Dockerfile para criar um contêiner com Python, adicionar nosso script a ele e garantir que o script seja executado automaticamente quando o contêiner iniciar:

Construa a Imagem Docker
Antes de você poder construir a imagem Docker, você precisa instalar o Docker primeiro. Depois disso, execute o seguinte comando para empacotar tudo em uma imagem Docker:
sudo docker build -t file-organizer .Ele lê nosso Dockerfile e junta a configuração do Python e nosso script para que estejam prontos para serem executados em uma única imagem de contêiner:

Crie uma Pasta de Exemplo com Arquivos
Para ver nosso script em ação, criamos uma pasta de teste chamada “sample_files” com alguns arquivos de diferentes tipos. Criamos esses arquivos apenas para deixar a pasta um pouco bagunçada e ver como nosso script Python lida com isso:
mkdir ~/sample_files
touch ~/sample_files/test.txt
touch ~/sample_files/image.jpg
touch ~/sample_files/data.csvExecute o Script Dentro do Docker
Finalmente, executamos nosso contêiner Docker e montamos a pasta de amostra nele. A flag -v monta seu diretório local “~/sample_files” no diretório “/files” no contêiner, o que permite que o script Python leia e organize arquivos na sua máquina host:
docker run --rm -v ~/sample_files:/files file-organizerAqui, usamos a opção --rm para remover o contêiner automaticamente após ele terminar de executar, o que economiza espaço em disco:
No final, usamos o comando tree para verificar se os arquivos foram classificados em pastas com base em suas extensões:
tree sample_files
Nota: O comando tree não está pré-instalado na maioria dos sistemas. Você pode instalá-lo facilmente usando um gerenciador de pacotes como apt no Ubuntu, brew no macOS, e assim por diante.
Considerações Finais
Com seu script Python rodando dentro do Docker, você está pronto para aproveitar ao máximo um ambiente de desenvolvimento limpo, portátil e consistente. Você pode reutilizar facilmente esse fluxo de trabalho em contêiner para outras tarefas de automação, compartilhar seu script sem se preocupar com dependências e manter seu sistema livre de bagunça. Como próximo passo, considere explorar como construir imagens Docker com múltiplos scripts, agendar contêineres com cron jobs ou integrar seus scripts com outras ferramentas como Git, Jenkins ou até mesmo plataformas em nuvem para otimizar seu processo de automação e implantação.