Cómo ejecutar un Script de Python con Docker paso a paso

Ejecutar scripts en Python es algo de lo más común, pero mantener las dependencias organizadas entre diferentes sistemas.. eso ya es otra historia.

Aquí es donde entra Docker al rescate: te permite meter tu script de Python y todas sus dependencias en un contenedor, para que funcione igual en cualquier sitio, sin dramas.

En esta guía te explico cómo hacerlo desde cero, con un ejemplo real y todo listo para probar en tu máquina.

¿Por qué usar Docker para crear scripts de Python?

Porque te ahorra un montón de quebraderos de cabeza. No tienes que andar instalando librerías por todo el sistema, ni pelearte con versiones raras o conflictos entre proyectos.

Todo lo que tu script necesita va dentro del contenedor. Así, si se lo pasas a un colega, a producción o a otra máquina, funcionará igual. Sin «a mí me va», ni historias.

Además, tu sistema se mantiene limpio, y puedes desplegar o compartir tu script con un simple comando. ¿Suena bien? Vamos al lío.

1. Escribe el Script en Python

Crea una carpeta para el proyecto:

mkdir docker_file_organizer
cd docker_file_organizer

Ahora crea un archivo llamado organize_files.py:

nano organize_files.py

Pega este código:

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"Error organizando archivos: {e}")

if __name__ == "__main__":
    organize_by_extension(SOURCE_DIR)

Este script organiza archivos por extensión: .txt, .jpg, .csv… lo que haya. Los mete en carpetas según su tipo. Limpio y efectivo.

2. Crea el Dockerfile

Ahora vamos a decirle a Docker cómo debe montar el entorno para ejecutar ese script. Crea un archivo llamado Dockerfile (sin extensión):

FROM python:latest
LABEL maintainer="tucorreo@example.com"
WORKDIR /usr/src/app
COPY organize_files.py .
CMD ["python", "./organize_files.py"]

3. Construye la imagen de Docker

Asegúrate de tener Docker instalado. Luego, en la terminal dentro del directorio:

sudo docker build -t file-organizer .

Esto crea una imagen llamada file-organizer.

4. Prepara una carpeta con archivos de prueba

Vamos a ver si funciona. Crea una carpeta con archivos varios:

mkdir ~/sample_files
touch ~/sample_files/nota.txt
touch ~/sample_files/foto.jpg
touch ~/sample_files/datos.csv

5. Ejecuta el Script con Docker

Ahora viene la magia. Ejecutamos el contenedor y montamos nuestra carpeta para que el script acceda a los archivos:

docker run --rm -v ~/sample_files:/files file-organizer

El --rm borra el contenedor cuando termine (así no se te llena el disco). El -v monta tu carpeta real dentro del contenedor.

6. Verifica que todo funciona

Comprueba cómo han quedado los archivos organizados:

tree sample_files

Si no tienes tree, puedes instalarlo:

  • En Ubuntu: sudo apt install tree
  • En macOS: brew install tree

Conclusión

Con este sistema puedes:

  • Compartir scripts sin preocuparte por dependencias
  • Automatizar tareas sin manchar tu sistema
  • Reutilizar el contenedor para otros proyectos

Y si te vienes arriba, puedes:

  • Añadir más scripts al contenedor
  • Programar la ejecución con cron
  • Integrarlo con GitHub, Jenkins o nubes como AWS/GCP

Docker y Python hacen buena pareja. Ahora que sabes cómo combinarlos, ¡a por tus automatizaciones!

Preguntas frecuentes (FAQ) de cómo ejecutar un Script de Python con Docker paso a paso

¿Por qué usar Docker para scripts de Python?

Docker te permite encapsular tu script con todas sus dependencias para que funcione igual en cualquier entorno. Evita conflictos de versiones y mantiene tu sistema limpio.

¿Qué hace el script organize_files.py?

Organiza archivos dentro de una carpeta según su extensión (.txt, .jpg, etc.), creando carpetas para cada tipo y moviendo los archivos a su lugar correspondiente.

⚙️ ¿Cómo creo una imagen de Docker para mi script?

Escribes un Dockerfile que use una imagen base de Python, copies tu script y definas el comando que debe ejecutarse. Luego usas docker build para generar la imagen.

️ ¿Para qué sirve el parámetro -v en docker run?

Para montar una carpeta de tu sistema dentro del contenedor. Así el script puede acceder y modificar archivos del entorno real.

¿Qué hace la opción –rm al ejecutar Docker?

Elimina el contenedor automáticamente al finalizar la ejecución, evitando acumulación de contenedores temporales.

¿Cómo verifico que los archivos se organizaron?

Usa el comando tree sample_files para ver la estructura del directorio tras la ejecución del script. Si no tienes tree, puedes instalarlo fácilmente.

¿Puedo reutilizar este contenedor para otros proyectos?

Sí. Puedes añadir más scripts, planificar tareas con cron o integrarlo en CI/CD con herramientas como GitHub Actions o Jenkins.


Descubre más desde CIBERED

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Deja un comentario