Quiero aprender a implementar aplicaciones con Docker y estoy trabajando con este sencillo programa de Python que escribe algunos datos en un archivo csv en el directorio de trabajo actual. Puedo ver el archivo output.csv en el directorio de trabajo actual en mi máquina local, pero tengo problemas cuando ejecuto la imagen de la ventana acoplable.
Después de leer varios artículos y publicaciones en stackoverflow, montar la ruta del directorio local usando "-v" parece ser la forma de lograrlo, pero no puedo obtener el comando correcto. Intenté crear un nuevo directorio en mi máquina local llamado "output_docker" (también reemplacé la opción get.cwd() en el programa con esta ruta) y lo usé con la opción -v.
docker container run -v "/Users/Desktop/output_docker" docker_image_name
Código Python (scraper.py)
import pandas as pd import os data = [['tom', 10], ['nick', 15], ['juli', 14]] df = pd.DataFrame(data, columns = ['Name', 'Age']) dirpath = os.getcwd() print("dirpath = ", dirpath, "\n") output_path = os.path.join(dirpath,'output.csv') print(output_path,"\n") df.to_csv(output_path)
DOCKERFILE
FROM python:3 ADD scraper.py / RUN pip install pandas CMD ["python3","./scraper.py"]
Salida en máquina local
$python3 scraper.py Name Age 0 tom 10 1 nick 15 2 juli 14 dirpath = /Users/Prathusha/Desktop/topos_docker /Users/Prathusha/Desktop/topos_docker/output.csv
Salida cuando ejecuto la imagen de la ventana acoplable
$docker build -t ex_scraper . $docker run ex_scraper Name Age 0 tom 10 1 nick 15 2 juli 14 dirpath = / /output.csv
Entiendo que el archivo "output.csv" se ubicará dentro de los subdirectorios del contenedor de la ventana acoplable, pero quiero que esté visible en el directorio de trabajo actual (o escritorio) cuando la imagen de la ventana acoplable se ejecute en una máquina diferente. Agradecería si alguien puede señalar dónde me estoy equivocando.
Puede vincular su directorio de host, sugeriría usar un WORKDIR
y reemplazar ADD
con COPY
-
DOCKERFILE
FROM python:3 WORKDIR /mydata COPY scraper.py ./ RUN pip install pandas CMD ["python3","./scraper.py"]
Ejecutarlo -
docker run -v ${PWD}:/data ex_scraper
Ahora debería poder ver el CSV en su directorio actual en el host.