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
以下是我所遵循的步骤:
- 使用此命令启动webdriver容器
docker run -d -p 8080:5000 "/bin/bash" "-c" "/dir1/dir2/filename.sh $PARAMETER1 $PARAMETER2"
- 将浏览器指向:
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。