Docker暴露的端口在浏览器上不可用,尽管前者运行正常

时间:2017-10-30 06:43:15

标签: docker docker-compose port docker-machine boot2docker

我在Virtual Box上使用docker,我尝试再添加一个运行图像。

我的第一次“跑步”是

$ docker run -Pit --name rpython -p 8888:8888 -p 8787:8787 -p 6006:6006 -p 
8022:22 -v /c/Users/lenovo:/home/dockeruser/hosthome 
datascienceschool/rpython

$ docker port rpython
8888/tcp -> 0.0.0.0:8888
22/tcp -> 0.0.0.0:8022
27017/tcp -> 0.0.0.0:32781
28017/tcp -> 0.0.0.0:32780
5432/tcp -> 0.0.0.0:32783
6006/tcp -> 0.0.0.0:6006
6379/tcp -> 0.0.0.0:32782
8787/tcp -> 0.0.0.0:8787

通过这些tcp在本地浏览器上运行正常。 但关于第二次“跑步”

docker run -Pit -i -t -p 8888:8888 -p 8787:8787 -p 8022:22 -p 3306:3306 --
name ubuntu jhleeroot/dave_ubuntu:1.0.1

$ docker port ubuntu
22/tcp -> 0.0.0.0:8022
3306/tcp -> 0.0.0.0:3306
8787/tcp -> 0.0.0.0:8787
8888/tcp -> 0.0.0.0:8888

它不起作用。

root@90dd963fe685:/# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group 
default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
   valid_lft forever preferred_lft forever
23: eth0@if24: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue 
state UP group default
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.2/16 scope global eth0
   valid_lft forever preferred_lft forever

对此有何想法?

1 个答案:

答案 0 :(得分:1)

你的第一个命令运行了一个图像(datascienceschool/rpython),它可能会启动一个python应用程序,该应用程序必须已经监听了你正在测试的端口。

你的第二个命令运行了一个不同的图像(jhleeroot/dave_ubuntu:1.0.1),并且从粘贴的输出中你只在该图像中运行一个bash shell。 Bash没有监听容器内的这些端口,因此docker将转发到一个关闭的端口,浏览器将看到一个已关闭的连接。

Docker不会为您的侦听端口运行服务器,它依赖于您在容器内运行它并且它只是转发请求。

相关问题