2017-04-07 103 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 
运行