在docker run command

时间:2017-04-07 14:23:35

标签: docker

此docker命令按预期工作:

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"

安装python 3版本启动miniconda。问题是,当我去...时,它会生成一个随机密码来访问jupyter。

http://somesite.com:7778

并且无法更改密码。唯一的方法是创建或更新主目录中找到的配置文件jupyter_notebook_config.py(子文件夹:〜/ .jupyter) 如何在主机上保存此文件并使用-v参数安装它?

如果我按照以下3个步骤操作,我可以手动执行此操作:

1)登录ipython docker container

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命令中。

1 个答案:

答案 0 :(得分: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