2017-04-07 100 views
1

這搬運工預期命令作品:添加配置文件

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" 

它開始miniconda安裝Python 3的版本。問題是,它生成一個隨機的密碼,當我去訪問jupyter ...

http://somesite.com:7778

而且沒有辦法更改密碼。唯一的方法是創建或更新在主目錄(子文件夾:〜/ .jupyter)中找到的配置文件jupyter_notebook_config.py 如何將此文件保存在主機上並使用-v參數進行裝載?

,如果我請按照下列3個步驟,我可以手動執行此操作:

1)登錄IPython的搬運工容器

docker exec -it 6cbc bash 

2)運行以下命令

jupyter notebook --generate-config 

3)使用類似這樣的命令將配置文件複製到容器中...

docker cp ipython_kernel_config.py 6cbc8d829e4a:/.jupyter/jupyter_notebook_config.py 

我正在尋找一種方法將這3個步驟合併到docker run命令中。

回答

3

您是否嘗試將卷裝載添加到運行命令?

就是這樣。

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" 

這裏假設你有一個/tmp/.jupyter目錄,並可以隨意更改其他內容。

此外,這是一個混亂的命令,你爲什麼不使用Dockerfile創建自己的圖像的任何原因?下面是一個粗略的例子,沒有測試過這麼可能的一些拼寫錯誤和語法錯誤,但你會明白。

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"] 

建立和運行你會做這樣的事情。

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

如果你願意,你甚至可以在你的本地文件中掛載。

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

即使作爲守護

docker run -d -v `pwd`:/mycode -p 7778:8888 myminiconda3 
運行