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.
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.
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.
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"]
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.
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
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.
Comprueba cómo han quedado los archivos organizados:
tree sample_files
Si no tienes tree, puedes instalarlo:
sudo apt install treebrew install treeCon este sistema puedes:
Y si te vienes arriba, puedes:
Docker y Python hacen buena pareja. Ahora que sabes cómo combinarlos, ¡a por tus automatizaciones!
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.
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.
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 montar una carpeta de tu sistema dentro del contenedor. Así el script puede acceder y modificar archivos del entorno real.
Elimina el contenedor automáticamente al finalizar la ejecución, evitando acumulación de contenedores temporales.
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.
Sí. Puedes añadir más scripts, planificar tareas con cron o integrarlo en CI/CD con herramientas como GitHub Actions o Jenkins.
La computación cuántica acaba de dar un salto gigante. John M. Martinis, recién galardonado con…
La biografía más vendida del cofundador de Apple, Steve Jobs; escrita por uno de los…
Hubo un tiempo en el que la “seguridad en el hogar” significaba confiar en un…
Elon Musk vuelve a romper todos los esquemas. Los accionistas de Tesla acaban de aprobar…
Los fans de Grand Theft Auto tendrán que esperar un poco más para volver a…
Five Nights at Freddy’s: Into the Pit nos sumerge en un misterioso mundo donde lo…