不能连接到Windows上的dockertomcat容器 – 我做错了什么?

我在Windows 10 64bit上运行Docker Toolkit 1.9.1 ,我试图看看詹姆斯·特恩布尔书和一个简单的build立示例站点 。

在Docker shell中,我创build了一个目录dockerBuilds 。 在那个目录中,我创build了另一个名为my-tomcat目录。

我进入该目录,然后运行touch Dockerfile 。 然后我创build了一个这样的简单的docker构build文件

 # start from base image FROM library/tomcat MAINTAINER Will Woodman "will.woodman@btinternet.com" 

从这我build立我的形象

 docker build -t my-tomcat . 

当我开始一个容器

 docker run --name tomcatApp -i -p 8080:8080 my-tomcat 

当tomcat启动时,我可以看到日志跟踪,当它解决时,与Chrome或其他浏览器的http://localhost:8080失败。

我停下来取出容器,然后试着:

 docker run --name tomcatApp -i -p 127.0.0.1:8080:8080 my-tomcat 

并得到同样的问题。

我甚至试图通过将浏览器指向http://192.168.99.100:8080连接到默认的docker虚拟机,但仍然无法连接。

所以我一定是做错了,但是我不知道是什么。 日志看起来很好,服务器说它已经启动了。 但是当我浏览时我没有看到任何连接。 docker stats tomcatApp显示容器正在运行。

我在这里错过了从我的Windows本地主机到容器端口的端口映射?

我看到这个使用docker inspect – 这看起来对我好

 "NetworkSettings": { "Bridge": "", "SandboxID": "7c58e33e5d3821fc8a1dc6bb6957031d11e07c04bf34f8aa7b17f8afeff03700", "HairpinMode": false, "LinkLocalIPv6Address": "", "LinkLocalIPv6PrefixLen": 0, "Ports": { "8080/tcp": [ { "HostIp": "127.0.0.1", "HostPort": "8080" } ] }, 

我究竟做错了什么?

如果您使用的是docker-machine并尝试联系localhost,则需要添加“ docker-machine中的端口转发? ”

  • 要么端口转发VirtualBox级别上的8080port(意思localhost:8080将工作)

     VBoxManage controlvm "boot2docker-vm" natpf1 "tcp-port5000,tcp,,8080,,8080"; 
  • 或使用由$(docker-machine ip <yourMachine>)返回的$(docker-machine ip <yourMachine>)

不要使用-p 127.0.0.1:8080:8080 ,但-p 8080:8080 :127.0.0.1是指VirtualBox的本地主机,而不是主机(Windows)的本地主机。

build立图像并运行容器为

 $ docker build tomcatApp . $ docker run -p 8080:8080 -t tomcatApp 

点击给定的命令finddocker-machine的IP地址

$ docker-machine ls

输出将如下所示

 NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS default * virtualbox Running tcp://192.168.99.100:2376 v1.10.3 

现在从主机运行你的应用程序 http : //192.168.99.100 : 8080/myapp