Docker input/output outside the container

I created a docker container with a python script. The python script takes an input file, does some processing and saves output file at some specified location.

docker run /app/script.py --input /data/input.csv --output /data/output.csv

Since the input file can be different every time I run the script, I want it to be outside the docker container. I also would like to store the output somewhere outside the container.

  • Get containers running a given image version
  • Using “tail -f /dev/null” to keep container up fails unexpectedly
  • Where is the docker swarm token stored?
  • CircleCI - Git could not resolve host when cloning repository
  • Chaning tcp_keepalive_* inside a docker container
  • Does a docker container have its own TCP/IP stack?
  • docker run /app/script.py --input /my/local/location/outside/docker/input.csv --output /my/local/location/outside/docker/output.csv
    

    Does docker support this? If so, how would one be able to achieve it?

    My Dockerfile looks like the following:

    FROM phusion/baseimage
    
    RUN apt-get update
    RUN apt-get install -y build-essential
    RUN apt-get install -y python-dev
    RUN apt-get install -y python-pip
    RUN apt-get install -y python-numpy && \
        apt-get install -y python-scipy
    
    COPY ./requirements.txt /app/requirements.txt
    COPY ./src/script.py /app/script.py
    
    WORKDIR /app
    COPY . /app
    

  • On Bluemix - handling volume for container group instances
  • `docker-machine env $VMNAME` hangs even when I'm _not_ using a VPN client like Cisco AnyConnect
  • Using docker with python packages
  • Using customized AMI in Elastic Beanstalk (Multi-container Docker) via awsebcli
  • Why do I need to give the hostname in netty socketio and how to handle socketio in docker?
  • Docker for Mac with WebStorm Node Remote Interpreter
  • 2 Solutions collect form web for “Docker input/output outside the container”

    You could mount a directory with the file inside as a Docker data volume using the -v option: https://docs.docker.com/engine/tutorials/dockervolumes/

    docker run -d -P --name myapp -v /app mydir/app python script.py
    

    This will have the added benefit of allowing you to stop the container, make changes to the file, and start the container and see the change reflected within the container.

    so you should add to your Dockerfile a line

    ENTRYPOINT ["python","/app/script.py"]

    and a

    CMD myinput

    or something similar,

    read

    What is the difference between CMD and ENTRYPOINT in a Dockerfile?

    read the docs about

    https://docs.docker.com/engine/reference/builder/#entrypoint

    and

    https://docs.docker.com/engine/reference/builder/#cmd

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.