我用python库和Jupyter创建了一个docker镜像。我使用选项启动容器-p 8888:8888
,以链接主机和容器之间的端口。当我在容器内启动Jupyter内核时,它正在运行localhost:8888
(并且没有找到浏览器)。我用的命令jupyter notebook
但是从主机上,与主机的浏览器中的Jupyter一起使用的IP地址是什么?
随着命令ifconfig
,我发现eth0
,docker
,wlan0
,lo
...
谢谢 !
我用python库和Jupyter创建了一个docker镜像。我使用选项启动容器-p 8888:8888
,以链接主机和容器之间的端口。当我在容器内启动Jupyter内核时,它正在运行localhost:8888
(并且没有找到浏览器)。我用的命令jupyter notebook
但是从主机上,与主机的浏览器中的Jupyter一起使用的IP地址是什么?
随着命令ifconfig
,我发现eth0
,docker
,wlan0
,lo
...
谢谢 !
docker ps
)。其次,您需要检查您的端口是否确实通过了主机。
jupyter notebook --ip 0.0.0.0 --no-browser
进入浏览器(OST):localhost:8888/tree
Answers:
您需要在运行您的笔记本电脑0.0.0.0
:jupyter notebook -i 0.0.0.0
。在本地主机上运行,使其只能从容器内部使用。
docker run -it -p 8888:8888 image:version
容器: jupyter notebook --ip 0.0.0.0 --no-browser
主机:localhost:8888/tree
--allow-root
!它来自Jupyter的安全问题。或者,您可以自定义配置文件以允许根(* .py输入~/.jupyter.
)
--port XXXX
with jupyter
。docker run
您可能还需要--allow-root
在jupyter调用中包含该端口。
主机: docker run -it -p 8888:8888 image:version
容器内: jupyter notebook --ip 0.0.0.0 --no-browser --allow-root
主机访问此URL: localhost:8888/tree
首次登录时,终端上会显示一个链接,用于使用令牌登录。
docker run -it -p 8899:8888 image:version
主机访问此URL:localhost:8899/tree
该docker run
命令是必需的,用于打开容器的端口以允许从主机浏览器进行连接,并使用-p将端口分配给Docker容器,然后从中选择jupyter映像docker images
。
docker run -it -p 8888:8888 image:version
在容器内,启动笔记本并分配您打开的端口:
jupyter notebook --ip 0.0.0.0 --port 8888 --no-browser --allow-root
通过http:// localhost:8888上的桌面浏览器访问笔记本 ,笔记本将提示您输入创建笔记本时生成的令牌。
-v
run命令指定了该选项,否则不会与主机共享任何存储。要映射要共享的卷,-v /path/to/host/source:/container/path/to/src
可以使用类似的东西。但请注意,这将隐藏容器可能具有的所有内容/container/path/to/src
。
要获取到Jupyter笔记本服务器的链接:
您之后docker run
的命令,超链接应自动生成。看起来像这样:http://localhost:8888/?token=f3a8354eb82c92f5a12399fe1835bf8f31275f917928c8d2 :: /home/jovyan/work
如果您想稍后再次获得链接,可以输入docker exec -it <docker_container_name> jupyter notebook list
。
jupyter notebook list
由于此问题而无法运行:(
hostname -I
获取远程服务器的IP(如果使用的是远程主机)。然后用IP替换URL中的“ localhost”。
-it
了初始docker run
命令,并且正在PyCharm Professional中运行,则只需单击Attached Console
窗口中的链接即可。如果仅从外壳程序运行它,则外壳程序可能允许也可能不允许您单击链接。
下面是我如何使用docker工具箱在Windows 7上运行它。
如果使用的是docker工具箱,请打开Docker快速入门终端,并在此处记录IP:
docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com
从tensorflow安装网站运行docker命令后:
docker pull tensorflow/tensorflow # Download latest image
docker run -it -p 8888:8888 tensorflow/tensorflow # Start a Jupyter notebook server
您将收到以下消息:
Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://127.0.0.1:8888/?token=d6e80acaf08e09853dc72f6b0f022b8225f94f
在主机中,将127.0.0.1替换为192.168.99.100,然后使用该URL的其余部分
-p <host port>:<container port>
正确指定端口即可。例如,如果要在上的容器上运行它5000
,但要在上运行它8888
,请使用-p 8888:5000
,并确保执行该操作--expose 5000
。另外,根据您的特定配置,您可能需要指定-p 127.0.0.1:8888:5000
从主机访问它。(我意识到自您提出要求以来已经过了一年,但我想我会帮助任何可能遇到相同问题的人。)
您可以使用命令jupyter notebook --allow-root --ip[of your container]
或使用option授予对所有ip的访问权限--ip0.0.0.0
。
查看Manifold最近开源的Torus项目。我们希望ML工程师能够采用一种简单的方法,在整个团队中使用一致的开发环境,开始在新项目上运行。该Python cookiecutter将为您搭建一个新的项目结构,其中包括一个使用我们在Docker Hub中放入的预烘焙ML dev映像的Dockerfile和一个为您处理所有端口转发的Docker Compose配置。编写配置是为了选择主机上的开放端口,以转发到容器内运行在8888上的笔记本服务器。不再麻烦在您的计算机上运行多个笔记本服务器!希望能检查出来对您有帮助!
Github仓库:https : //github.com/manifoldai/docker-cookiecutter-data-science
我们为什么建造它(带有演示):https : //medium.com/manifold-ai/torus-a-toolkit-for-docker-first-data-science-bddcb4c97b52
作为构建自己的Docker映像的替代方法,您还可以使用ML Workspace映像。ML Workspace是一个开源Web IDE,它将Jupyter,VS Code,桌面GUI和许多其他工具与库组合到一个方便的Docker映像中。部署单个工作区实例非常简单:
docker run -p 8080:8080 mltooling/ml-workspace:latest
所有工具均可从同一端口访问,并集成到Jupyter UI中。您可以在此处找到更多文档。
docker run -i -t -p 8888:8888continentumio / 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,现在它正在运行
nvidia-docker
。