无法访问本地windows计算机上的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

我正在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:“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访问

  • 跟随这篇文章
  • 并确保您的应用程序运行的不仅仅是docker
  • docker run-d-p 4000:80友好你好

    在Windows 10主机上执行此操作之后

  • 工作
  • 不工作:

  • 我使用以下命令将正在运行的容器上的内部端口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机箱外访问它,这将更加安全。最佳和最有用的答案。