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
  • 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.

  • 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 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.