我开始使用 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。
谁能帮我解决问题
最佳答案
这是您应该使用的 IP 地址192.168.99.100
我预计问题是您的 apache 服务器位于容器内的端口 80,而不是 8090,即您的 docker 命令应该是:
$ docker run -itp 8090:80 linode/lamp
这意味着将外部主机 (192.168.99.100
) 上的端口 8090 映射到容器内的端口 80。
关于windows - 无法从 Windows 中的 docker 访问托管应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39139081/