从AWS的docker容器内服务Jupyter Notebook不工作?
我已经build立了一个Ubuntu 14.04 AWS实例。 我的安全组有端口8888开放(tcp)和端口22开放ssh。
我可以ssh进入实例,然后在实例中我启动一个docker容器:
docker run -it --name="test" -p 8888:9999 b.gcr.io/tensorflow/tensorflow:latest-devel
这个容器中有jupyter笔记本,然后在容器中运行jupyter notebook
,我看到正确的输出:
[I 14:49:43.788 NotebookApp] The Jupyter Notebook is running at: http://[all ip addresses on your system]:8888/ [I 14:49:43.788 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
如果我通过打开另一个ssh来运行docker ps
,我会看到:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8414f19fcd5f b.gcr.io/tensorflow/tensorflow:latest-devel "/bin/bash" 38 minutes ago Up 23 minutes 6006/tcp, 8888/tcp, 0.0.0.0:8888->9999/tcp test
所以一切似乎都是正确的,但我没有看到jupyter笔记本: http:// PUBLICIP:8888
代替:
docker run -it --name="test" -p 8888:9999 b.gcr.io/tensorflow/tensorflow:latest-devel
诀窍是使用:
docker run -it --name="test" -p 8888:8888 b.gcr.io/tensorflow/tensorflow:latest-devel
编辑,感谢DDW的解释:
“-p 8888:9999不代表范围,这意味着你的docker容器的端口9999被映射到端口8888. 8888可能是你的标准笔记本端口,所以8888:8888的工作是合乎逻辑的。
如果你想打开两个端口,那么命令是:
docker run -it --name="test" -p 8888:8888 -p 9999:9999 b.gcr.io/tensorflow/tensorflow:latest-devel
- Laravel项目+媒体服务器,用于部署在Docker上的直播和vodstream
- 是否有可能直接从AWS lambda中调用docker run
- 在Amazon Linux上启动Docker中的Mesos slave会导致cgroup错误
- Python / Django Elastic Beanstalk现在无法部署
- AWS ECS上的Kafka,如何在不知道实例的情况下处理advertised.host?
- Elastic Beanstalk和Docker – EB CLI在Mac上不起作用! BUG
- 如何从ElasticBeanstalk应用程序实例检索正在运行的版本?
- 获取“此应用程序已经运行”,但找不到RUNNING_PIT
- CannotStartContainerError提交AWS批处理作业