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 …

  • How to manage/rotate/delete mesos logs
  • How to persist data using postgres docker image?
  • docker Mule-server curl: (56) Recv failure: Connection reset by peer
  • Proxy Error in nova docker installation
  • Run Docker PHP-apache: Forbidden You don't have permission to access / on this server
  • how to configure docker to use apache and php in separate containers
  • http://somesite.com:7778

    And there is no way to change the password. The only way is to create or update the config file jupyter_notebook_config.py 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 ipython_kernel_config.py  6cbc8d829e4a:/.jupyter/jupyter_notebook_config.py
    

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

  • Exposing Docker application to host
  • Run multiple services inside one docker container [closed]
  • What is the special gitlab-ci-token user?
  • Testing multiple docker images with RSpec
  • CoreOS Fleet, link redundant Docker container
  • Kubernetes on Fedora 21 Pod Stays Pending
  • 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 ipython_kernel_config.py /.jupyter/jupyter_notebook_config.py
    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.