对于Windows 10计算机,我正在遵循docker documentation创建本地Web服务器。
我运行以下命令;
docker run -d -p 8086:8086 --name webserver nginx
和
docker inspect webserver
这给我输出像;
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "49caf62d4fee8e10aab2f43dbe0817e50efd6a647044f5e9d7ec674bbbe6f852",
"EndpointID": "0352ee7fe9d414748840f9b8c18784293ec15f25a2e0de8cbe7ee5a255cf57ae",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.3",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:03",
"DriverOpts": null
}
}
因此,当我尝试访问http://172.17.0.3:8086时,无法访问Web服务器。
我也有
docker ps
的输出,如下所示:我在这里想念什么吗?
最佳答案
当您指定-p 8086:8086
时,您告诉docker您想从容器内部获取端口8086
并将其发布到主机上的端口8086
。但是,容器中的8086
端口没有任何内容。 Ngix在端口80
上运行。您要使用的命令是:
docker run -d -p 8086:80 --name webserver nginx
这会将容器中的端口
80
映射到主机上的8086
。现在,您应该能够从主机通过localhost:8086
向其发送HTTP请求。