无法访问本地windows计算机上的nginx容器
我正在Windows10机器上运行一个nginx容器。我已经把它精简到了最低限度——Docker hub中提供了一个nginx映像。我正在使用以下命令运行它:无法访问本地windows计算机上的nginx容器,nginx,docker,Nginx,Docker,我正在Windows10机器上运行一个nginx容器。我已经把它精简到了最低限度——Docker hub中提供了一个nginx映像。我正在使用以下命令运行它: docker run——名称为ng-d-p nginx 这是docker ps的输出: b5411ff47ca6 nginx“nginx-g'守护进程关闭”22秒前上升21秒0.0.0.0:32771->80/tcp,0.0.0.0:32770->443/tcp ng 这是我在执行docker inspect ng时得到的IP:“IPAd
docker run——名称为ng-d-p nginx
这是docker ps的输出:
b5411ff47ca6 nginx“nginx-g'守护进程关闭”22秒前上升21秒0.0.0.0:32771->80/tcp,0.0.0.0:32770->443/tcp ng
这是我在执行docker inspect ng时得到的IP:“IPAddress:“172.17.0.2”
因此,我要做的下一件事是通过打开http://172.17.0.2:32771
在主机的浏览器中。这不起作用(找不到主机等)
请告知在windows上,您正在使用Docker Toolbox,您需要的IP是
192.168.99.100
(这是Docker Toolbox虚拟机的IP)。您获得的IP是虚拟机内部容器的IP,无法直接从Windows访问
我使用以下命令将正在运行的容器上的内部端口80映射到本地主机上的端口82: docker运行--名称webserver2-d-p82:80nginx 从localhost:82访问nginx映像非常有用 您希望从本地web浏览器访问的端口是:80之前的第一个数字,这是nginx映像在容器中虚拟运行的位置
在这个问题上有很多错误的沟通——这是主机(您正在运行的Windows)和docker上运行的容器之间的一个简单端口映射。Magic不过只有Windows才是这样,对吗?如果我在Linux机器上部署它,它将按预期工作?Windows和OS X。在Linux上,您将能够使用
172.17.0.2:80
(直接使用容器的IP地址)或localhost:32771
(使用主机的IP地址和映射端口)直接访问它-P
将容器端口映射到随机主机端口。您还可以使用-p host\u port:container\u port
映射到指定的端口。此外,您还可以在Linux上直接访问容器,而无需进行端口映射,如果您不需要在Linux机箱外访问它,这将更加安全。最佳和最有用的答案。