使用 boot2docker 将 docker 容器应用程序端口公开到 windows 上的主机

expose docker containers application port to host on windows using boot2docker

到目前为止我有:

  1. 在WIN7上安装了boot2docker 1.6.0
  2. 使用 ubuntu:14.01 基础映像创建了一个容器
  3. 安装并提交了一个应用程序,现在我有了一个新图像 "demotest_core"

我 运行 遇到的问题是,当我使用此命令启动我的容器时

docker run -it --name demotest --rm -p 127.0.0.1:15000:1500 -v /c/Users/b101/shared:/mnt/shared ubuntu/demotest_core bin/bash

容器启动,之后我 cd 到我的应用程序目录并启动应用程序(它是一个在端口 1500 上运行的 Web 应用程序)应用程序在容器上成功启动,我可以在 LISTENING 中看到它当我做 netstat 时的模式。我想在我的主机 WIN7 系统上访问这个应用程序,但是当我尝试 http://127.0.0.1:15000 我收到连接被拒绝的错误。

使用另一个终端我可以清楚地看到端口映射已经到位,但我无法在主机上访问它

C:\Users\b101>docker port demotest
1500/tcp -> 127.0.0.1:15000

我也试过这个命令,我想首先我需要公开端口然后映射它但是它没有用

docker run -it --name demotest --expose 1500 --rm -p 127.0.0.1:15000:1500 -v /c/Users/b101/shared:/mnt/shared ubuntu/demotest_core bin/bash

如果您使用的是 docker-machine,则该端口在 VM 中公开,而不是您本地的 Win7 机器。

-p 127.0.0.1:15000:1500 更改为 15000:1500,然后尝试访问 docker-machine ip default.

中给定 IP 地址的端口 15000

您不能在端口映射中使用 127.0.0.1,因为它只会绑定到无法从 VM 外部访问的本地接口。