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 …

  • Loopback handle connection issues (and startup crashes)
  • How can I run `gcloud preview app setup-managed-vms` without this error?
  • Local development with docker - do I need 2 Dockerfiles?
  • Docker web terminal
  • Limit number of processes started inside docker container
  • How to test HTML pages served by docker with Windows vitrualbox guest?

    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.

  • Rancher Performance (Docker in Docker?)
  • openerp-server: error: no such option: -p
  • “ No route to host” between two Docker Containers
  • Can I run windows containers using docker-toolbox on windows 7?
  • /home/web/.gem/ruby/2.2.0/gems/redis-3.2.1/lib/redis/connection/ruby.rb:152:in `getaddrinfo': getaddrinfo: Name or service not known (SocketError)
  • Docker volume access from host
  • 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.