无法从Windows中的docker访问托管应用程序

时间:2016-08-25 07:23:09

标签: windows docker boot2docker docker-machine

我开始玩码头工作了一段时间并陷入了下面的困境:

这是我的环境:

myForm.DataBindings.Add(new Binding("Items", ItemsController.Singleton, "Items")
{
    DataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged,
    ControlUpdateMode = ControlUpdateMode.Never
});

这就是我想要做的事情:

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

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

我应该可以从码头工人的内部和外部访问网址。

有人可以帮我解决问题吗

1 个答案:

答案 0 :(得分:2)

这是您应该使用的192.168.99.100

的IP地址

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

$ docker run -itp 8090:80 linode/lamp

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