Adding config file in docker run command

This docker command works as expected:

docker run -i -t -p 7778:8888 continuumio/miniconda3 /bin/bash -c "/opt/conda/bin/conda install jupyter -y --quiet && mkdir /opt/notebooks && /opt/conda/bin/jupyter notebook --notebook-dir=/opt/notebooks --ip='*' --port=8888 --no-browser --allow-root"

It starts miniconda with python 3 version installed. The problem is that it generates a random password to access jupyter when I go to …

  • AWS ECS - how to log to cloudwatch from ECS container?
  • docker-compose for a pure data container and web server, postgresql
  • Docker rsyslog driver add message length before actual message
  • Saving function output into a variable named in an argument
  • Accessing docker container mysql databases
  • Is it possible to mount a directory while building from Dockerfile?

    And there is no way to change the password. The only way is to create or update the config file found in home directory (sub-folder: ~/.jupyter)
    How do I save this file on host and mount it using -v parameter?

    I can do this manually if I follow these 3 steps:

    1) Login to ipython docker container

    docker exec -it 6cbc bash

    2) Run the following command…

    jupyter notebook --generate-config

    3) Copy the config file to the container using a command something like this…

    docker cp  6cbc8d829e4a:/.jupyter/

    I am looking for a way to merge these 3 steps into the docker run command.

  • Listing the tags of a docker image on a Docker hub through the HTTP API
  • How do you run an Openshift Docker container as something besides root?
  • Docker ADD folder during build and then expose to VOLUME
  • Connect a web-app on tomcat container to mysql container via hibernate
  • Allocate or Limit resource for pods in Kubernetes?
  • OSX with Boot2Docker is not deleting files when removing images
  • One Solution collect form web for “Adding config file in docker run command”

    Have you tried adding a volume mount to the run command?

    Something like this.

    docker run -i -t -v /tmp/.jupyter:/.jupyter/ -p 7778:8888 continuumio/miniconda3 /bin/bash -c "/opt/conda/bin/conda install jupyter -y --quiet && mkdir /opt/notebooks && /opt/conda/bin/jupyter notebook --notebook-dir=/opt/notebooks --ip='*' --port=8888 --no-browser --allow-root"

    This assumes you have a /tmp/.jupyter directory, and feel free to change to something else.

    Also, this is a messy command, any reason why you don’t create your own image using a Dockerfile? Here is a rough example, haven’t tested so probably some typos and syntax errors, you but get the idea.

    FROM continuumio/miniconda3
    RUN /opt/conda/bin/conda install jupyter -y --quiet
    RUN mkdir /opt/notebooks
    # COPY in your custom config 
    COPY /.jupyter/
    EXPOSE 8888
    # RUN the notebook
    CMD ["/opt/conda/bin/jupyter", "notebook", "--notebook-dir=/opt/notebooks", "--ip='*'", "--port=8888", "--no-browser", "--allow-root"]

    To build and run you would do something like this.

    docker build -t myminiconda3 .
    docker run -it -p 7778:8888 myminiconda3

    you can even mount in your local files if you want.

    docker run -it -v `pwd`:/mycode -p 7778:8888 myminiconda3

    And even run as a daemon

    docker run -d -v `pwd`:/mycode -p 7778:8888 myminiconda3
    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.