Docker:尽pipe成功的演示例子,但无法查看正在运行的容器

当我从“查看我们的Web应用程序容器”部分中的Docker doc中运行示例时,

docker run -d -P training/webapp python app.py

…我可以在浏览器中查看“Hello World”输出。 成功。 这似乎表明,我所在的networking可能不是问题。

现在我试图查看一个运行webdriver套件的容器(testing浏览器的自动化)。 基于Docker日志-f中的输出,webdriver套件运行完成。 但是,当我尝试将浏览器指向webdriver容器(运行浏览器)时,出现错误:

ERR_CONNECTION_REFUSED

以下是我所遵循的步骤:

  1. 使用此命令启动webdriver容器docker run -d -p 8080:5000 "/bin/bash" "-c" "/dir1/dir2/filename.sh $PARAMETER1 $PARAMETER2"
  2. 将浏览器指向: http://subdomain.mydomain.com:5000 : http://subdomain.mydomain.com:5000 : http://subdomain.mydomain.com:5000

Docker输出:

 user@server$ docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2fa83fc0401a 65525ab9ad78 "/bin/bash -c '/opt/y" 55 minutes ago Up 55 minutes 2222/tcp, 0.0.0.0:8080->5000/tcp user@server$ docker inspect --format '{{ .NetworkSettings.IPAddress }}' 2fa83fc0401a 111.22.33.4444 

其他信息:
服务器configuration:Ubuntu 14.04
Docker版本:1.8.1,build d12ea79

我已经回顾了以下问题,但是我没有在虚拟机上运行,​​也没有运行NodeJS。 无法在浏览器中查看在docker容器中运行的rails应用程序
Docker:无法为正在运行的容器指定端口

有没有人有如何解决这个问题的build议? 任何援助感激地接受。

:)杰伊

更新1:基于上面提到的NodeJS问题,我想我没有在Dockerfile中正确设置端口。 也许这和为Selenium设置正确的端口一样简单?

更新2:如@ hunter指出,我有错误的顺序端口,但切换端口不能解决问题。 我认为更大的问题是我分配了错误的端口。 所以,我把docker run -d -p 8080:5000更改为docker run -d -P 。 当我这样做,我得到了以下输出:

 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS f375251b61d7 65525ab9ad78 "/bin/bash -c '/opt/y" About an hour ago Up About an hour 0.0.0.0:33073->2222/tcp 

然后,我指出浏览器到该端口: http://subdomain.mydomain.com:33073 : http://subdomain.mydomain.com:33073 : http://subdomain.mydomain.com:33073

但我仍然得到相同的错误: ERR CONNECTION REFUSED

我认为你使用的是错误的端口 – 外部端口是8080而不是5000。