在docker运行命令中添加configuration文件
这个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
而且没有办法改变密码。 唯一的方法是创build或更新在主目录(子文件夹:〜/ .jupyter)中find的configuration文件jupyter_notebook_config.py如何将此文件保存在主机上并使用-v参数进行装载?
如果我遵循以下3个步骤,我可以手动执行此操作:
1)login到ipython docker容器
docker exec -it 6cbc bash
2)运行以下命令…
jupyter notebook --generate-config
3)使用一个像这样的命令将configuration文件复制到容器…
docker cp ipython_kernel_config.py 6cbc8d829e4a:/.jupyter/jupyter_notebook_config.py
我正在寻找一种方法将这3个步骤合并到docker run命令中。
你尝试添加一个卷装入运行命令?
像这样的东西。
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创build自己的图像? 这里是一个粗略的例子,还没有testing过这么可能的一些拼写错误和语法错误,你只是想到了。
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"]
build立和运行你会做这样的事情。
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
- 在fedora容器中systemctl给出了无法获得D-Bus连接
- Pycharm 2017 docker支持debugging
- Git pre-commit hook + docker =不同的git状态
- 将通配符从Docker容器复制到主机
- 一个完全封闭的源docker容器
- 使用Maven的setting.xml将构buildparameter passing到fabric8io / docker-maven-plugin
- 在Ubuntu上,实现容器隔离(用户名空间),more / proc / / gid_map,不输出
- 在Docker容器中运行的PhantomJS服务器
- 在docker环境中重新启动postgres