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 …

  • Mount host directories in docker compose
  • How can I identify why my replica's are not starting in the swarm?
  • mariadb docker container on OS X: can't create database directory
  • Docker - curl returned “connection reset”
  • Trying to install Mezzanine via Docker
  • sensitive information required for docker build

    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.

  • All containers inside a digital ocean droplet stop
  • Installing Composer in Docker container gives Segmentation fault
  • How to switch from ascii postgresql database to utf8 on docker?
  • docker-compose up leads to “client and server don't have same version (client : 1.14, server: 1.12)” error but client and server have the same version
  • When I dockerize a sinatra app, what happens to the app's log files?
  • Container stop because of: “httpd: Could not open configuration file /etc/httpd/conf/httpd.conf: No such file or directory”, why?
  • 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.