我使用以下内容在docker engine for mac(v.1.12.5)上运行一个简单的Web应用程序容器:
docker run --rm -p 80:8089 test-app
我已在“网络”下检查了我的容器的IP>从以下桥梁:
docker inspect $(docker ps -l --format "{{.ID}}")
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "f53f1b93aa0f2fda186498d30e7f6e5b97ba952d1b6fe442663ac6025fd74ce3",
"EndpointID": "178937cf211c2360d9f9c594891985637d1d82a334a40b1b46d3acb2ea8aaf20",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2", // <- use this?
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:02"
}
}
据我了解,我直接在笔记本电脑上运行我的网站应用程序容器(不是通过docker-machine
)。在这一点上,我并不关心让它工作而不是理解。
我的容器已分配了IP 172.17.0.2
,我已将其粘贴在上面,并且已通过docker run -p
标记将我的网络应用容器(带有EXPOSE 80)映射到端口8089 。
我的印象是我应该可以通过http:// 172.17.0.2:8089访问我的网络应用,但我得不到回应。为什么呢?
答案 0 :(得分:0)
如果容器中的进程侦听端口80,则-p
标志应该是-p 8089:80
的另一种方式。然后可以通过localhost:8089