【问题标题】:Unable to access hosted app from docker in Windows无法从 Windows 中的 docker 访问托管应用程序
【发布时间】:2017-01-01 12:28:41
【问题描述】:

我开始玩 docker 一段时间,但遇到了以下问题:

这是我的环境:

Windows 10
boot2docker/Docker version 1.12.0
Virtual box 5.0.24

这就是我想要做的:

$ docker run -itp 8090:8090 lamp
root@8ebc390337be:/# service apache2 start
 * Starting web server apache2                                                                                                                                           *
root@8ebc390337be:/# service mysql start
 * Starting MySQL database server mysqld                                                                                                                           [ OK ]
root@8ebc390337be:/#

从容器中分离,然后

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
8ebc390337be        lamp         "/bin/bash"         13 minutes ago      Up 13 minutes       0.0.0.0:8090->8090/tcp   happy_brown

$ docker inspect $(docker ps -q) | grep IPA
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                    "IPAMConfig": null,
                    "IPAddress": "172.17.0.2",

现在当我尝试运行时

$ curl 172.17.0.2:8090
curl: (7) Failed to connect to 172.17.0.2 port 8090: Timed out

然后我尝试了

$ docker-machine ip default
192.168.99.100
$ curl 192.168.99.100:8090
curl: (7) Failed to connect to 192.168.99.100 port 8090: Connection refused

我确实经历了这个accessing-a-docker-container-url-on-windows-host,但它没有帮助我。

我应该能够从 docker 内部和外部访问 url。

有人可以帮我解决问题

【问题讨论】:

标签: windows docker boot2docker docker-machine


【解决方案1】:

这是您应该使用的 IP 地址192.168.99.100

我预计问题是您的 apache 服务器位于容器内的端口 80,而不是 8090,即您的 docker 命令应该是:

$ docker run -itp 8090:80 linode/lamp

这意味着将外部主机 (192.168.99.100) 上的端口 8090 映射到容器内的端口 80。

【讨论】:

  • 感谢 @matthew 我能够在 docker 终端内成功 curl,但仍然无法通过浏览器在终端外访问它 192.168.99.100:8090
  • 取决于您所说的“外部”是什么意思。该IP只能通过您的Windows PC访问。您可以设置路由/代理,以便更广泛地访问它,但这本身就是一个问题!
  • 是的,我无法通过 Windows PC 中的浏览器访问它
  • 我什至尝试在 Virtualbox 中添加规则,如下所述:stackoverflow.com/questions/33814696/… 但仍然无法通过浏览器访问它。
  • 当你 curl 它是在提供实际的 html 吗?
猜你喜欢
  • 2018-03-18
  • 2021-11-06
  • 2015-12-04
  • 1970-01-01
  • 2021-08-10
  • 1970-01-01
  • 1970-01-01
  • 2016-10-08
  • 1970-01-01
相关资源
最近更新 更多