[英]running conda's jupyter on docker
我正在使用 docker image continuumio/anaconda3 并想通过浏览器使用 conda 启动 jupyter notebook 服务器......
docker run -i -t -p 8888:8888 continuumio/anaconda3 /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"
这导致...
Package plan for installation in environment /opt/conda:
The following packages will be UPDATED:
anaconda: 5.0.1-py36hd30a520_1 --> custom-py36hbbc8b67_0
conda: 4.3.30-py36h5d9f9f4_0 --> 4.4.10-py36_0
jupyter: 1.0.0-py36h9896ce5_0 --> 1.0.0-py36_4
pycosat: 0.6.2-py36h1a0ea17_1 --> 0.6.3-py36h0a5515d_0
[I 14:59:00.461 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
[W 14:59:00.475 NotebookApp] WARNING: The notebook server is listening on all IP addresses and not using encryption. This is not recommended.
[I 14:59:00.498 NotebookApp] JupyterLab alpha preview extension loaded from /opt/conda/lib/python3.6/site-packages/jupyterlab
JupyterLab v0.27.0
Known labextensions:
[I 14:59:00.499 NotebookApp] Running the core application with no additional extensions or settings
[C 14:59:00.502 NotebookApp] Running as root is not recommended. Use --allow-root to bypass.
如果我使用
$ docker run -p 8888:8888 -i -t continuumio/anaconda3 /bin/bash
root@083f8fbb5d3b:/# jupyter notebook
它给...
[I 15:00:52.496 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
Traceback (most recent call last):
File "/opt/conda/bin/jupyter-notebook", line 11, in <module>
sys.exit(main())
File "/opt/conda/lib/python3.6/site-packages/jupyter_core/application.py", line 267, in launch_instance
return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)
File "/opt/conda/lib/python3.6/site-packages/traitlets/config/application.py", line 657, in launch_instance
app.initialize(argv)
File "<decorator-gen-7>", line 2, in initialize
File "/opt/conda/lib/python3.6/site-packages/traitlets/config/application.py", line 87, in catch_config_error
return method(app, *args, **kwargs)
File "/opt/conda/lib/python3.6/site-packages/notebook/notebookapp.py", line 1296, in initialize
self.init_webapp()
File "/opt/conda/lib/python3.6/site-packages/notebook/notebookapp.py", line 1120, in init_webapp
self.http_server.listen(port, self.ip)
File "/opt/conda/lib/python3.6/site-packages/tornado/tcpserver.py", line 142, in listen
sockets = bind_sockets(port, address=address)
File "/opt/conda/lib/python3.6/site-packages/tornado/netutil.py", line 197, in bind_sockets
sock.bind(sockaddr)
OSError: [Errno 99] Cannot assign requested address
我应该如何运行 Jupyter 笔记本?
谢谢达斯伯恩先生,
$ docker run -p 8888:8888 -i -t continuumio/anaconda3 /bin/bash
jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root
并且您已经启动并运行了 Jupyter 笔记本。
按 ctrl 并单击终端上的“使用令牌登录”链接,如下所示,
http://0.0.0.0:8888/?token= ...
或
http://127.0.0.1:8888/?token= ...
使用此线程中的答案,我想出了一个单行代码,用于运行带有最新 Anaconda docker 映像 (4.0) 的 Jupyter 笔记本,它将与容器共享您的当前目录,从而将笔记本保存在您的主机上。
docker run -t --rm -p 8888:8888 -v $(PWD):/opt/notebooks continuumio/anaconda /bin/bash -c "/opt/conda/bin/jupyter notebook --ip=0.0.0.0 --port=8888 --notebook-dir=/opt/notebooks --allow-root --no-browser"
请注意,通过将当前工作目录映射为容器中的卷( -v $(PWD):/opt/notebooks
),然后将其指定为 Jupyter 的笔记本目录( --notebook-dir=/opt/notebooks
),您不需要制作目录。 Docker 会自动为您执行此操作并与您的主机共享。 另请注意,通过将--rm
添加到调用中,一旦您关闭 Jupyter 服务器,docker 将删除容器,以便您以后不必清理它们。
您还可以将其用作.bash_profile
的别名,如下所示:
alias jupyter='docker run -t --rm -p 8888:8888 -v $(PWD):/opt/notebooks continuumio/anaconda /bin/bash -c "/opt/conda/bin/jupyter notebook --ip=0.0.0.0 --port=8888 --notebook-dir=/opt/notebooks --allow-root --no-browser"'
然后你可以使用:
$ jupyter
任何时候你想使用jupyter notebook
使用当前目录作为你的 notebook 文件夹。 (希望这对某人有帮助)
要在不进入 Docker 容器的情况下运行 Jupyter Notebook,请执行以下操作:
获取 docker 镜像
docker pull continuumio/anaconda3
安装并启动 Jupyter Notebook
docker run -i -t -p 8888:8888 continuumio/anaconda3 /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"
请注意,我们正在传递--allow-root
标志。
安装后,笔记本服务器应该显示一个带有令牌的链接:
localhost
: http://localhost:8888/?token=YOUR_TOKEN
我参加聚会可能有点晚了,但是经过几天的反复试验,我已经将我正在使用的docker
和docker-compose
文件放在一起。 我正在发布我的docker-compose
、 docker
和environment.yaml
文件。 希望前段时间能帮到像我这样的可怜人:
docker
文件:
FROM continuumio/miniconda3
# Update conda.
RUN conda update -n base -c defaults conda
# Create the environment:
COPY environment.yml .
RUN conda env create -f environment.yml
WORKDIR /home
ENTRYPOINT ["conda", "run", "-n", "myenv", "jupyter", "notebook", "--ip=0.0.0.0", "--port=8080", "--allow-root", "--NotebookApp.token=''", "--NotebookApp.password=''"]
docker-compose
文件:
version: '3'
services:
miniconda:
container_name: 'jupyter_docker'
build: '.'
ports:
- 8080:8080
volumes:
- $PWD/files:/home
和environment.yaml
文件:
name: myenv
channels:
- conda-forge
- defaults
dependencies:
- jupyter
- python=3.8.2=hcf32534_0
- pip:
- datetime
使用 docker-compose 运行非常简单,单个命令docker-compose up
会创建镜像(如果镜像尚不存在)并设置一个容器。 从那里,只需转到您的浏览器localhost:8080
。 完成后运行docker-compose down --rmi all --remove-orphans
以删除容器和图像。
我在运行这个的 docker 上使用 anaconda
docker run -it --rm --name ds -p 8888:8888 jupyter/datascience-notebook
使用它并告诉我
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.