在 vmware 的 vagrant 中连接到 docker 中的网络服务器 运行

Connecting to webserver running in docker in vagrant in vmware

在我的 mac 上,我是 运行 Windows VMware 中的 Server 2016。我在 运行 Ubuntu 的 vagrant/Virtual 盒子里。在那里,我 运行 一个 django 应用程序在 docker 容器中 nginx/uwsgi。网络服务器正在侦听 9003,并且从 Windows 虚拟机中的浏览器 运行 我可以使用 localhost:9003 连接到网络服务器。我希望能够从我的 Mac 上的浏览​​器 运行 和本地网络上的其他 mac 网络连接到它。在 VMware 网络设置中,我选择了 Internet 共享、与我共享 Mac。

在 Windows 虚拟机中我看到了这个:

$ ipconfig

Windows IP Configuration


Ethernet adapter vEthernet (HNS Internal NIC):

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::a088:5807:8265:722%11
   IPv4 Address. . . . . . . . . . . : 192.168.192.1
   Subnet Mask . . . . . . . . . . . : 255.255.240.0
   Default Gateway . . . . . . . . . :

Ethernet adapter Ethernet0:

   Connection-specific DNS Suffix  . : localdomain
   Link-local IPv6 Address . . . . . : fe80::440c:bbeb:3408:87a2%6
   IPv4 Address. . . . . . . . . . . : 172.16.88.128
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 172.16.88.2

Ethernet adapter VirtualBox Host-Only Network:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::d90e:3f15:2ff3:9c8%3
   IPv4 Address. . . . . . . . . . . : 192.168.56.1
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . :

Tunnel adapter isatap.{128CE093-EDCD-4551-A68C-1ED0F721C48D}:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Tunnel adapter isatap.{C1972449-FA02-4CD9-A894-9F82BCD31099}:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Tunnel adapter isatap.localdomain:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . : localdomain

在 vagrant 虚拟机中:

$ ifconfig
docker0   Link encap:Ethernet  HWaddr 02:42:6a:c7:10:cf
          inet addr:172.17.0.1  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::42:6aff:fec7:10cf/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:87179 errors:0 dropped:0 overruns:0 frame:0
          TX packets:177348 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:17368120 (17.3 MB)  TX bytes:1072352935 (1.0 GB)

eth0      Link encap:Ethernet  HWaddr 08:00:27:ac:f1:24
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:feac:f124/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:890873 errors:0 dropped:0 overruns:0 frame:0
          TX packets:128642 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1203867192 (1.2 GB)  TX bytes:24867499 (24.8 MB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1296 (1.2 KB)  TX bytes:1296 (1.2 KB)

vetha7780cb Link encap:Ethernet  HWaddr 0e:7b:96:75:ae:68
          inet6 addr: fe80::c7b:96ff:fe75:ae68/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5808 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10063 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:13697486 (13.6 MB)  TX bytes:637891 (637.8 KB)

在 docker 容器中:

# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.2  netmask 255.255.0.0  broadcast 0.0.0.0
        ether 02:42:ac:11:00:02  txqueuelen 0  (Ethernet)
        RX packets 10155  bytes 891257 (870.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5893  bytes 13702369 (13.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 0  (Local Loopback)
        RX packets 506  bytes 184179 (179.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 506  bytes 184179 (179.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

我的Mac的本地IP是10.0.0.19.

我尝试从 Mac 连接到 localhost:9003,但没有成功。我还尝试了 10.0.0.19、10.0.2.15、172.17.0.1、192.168.192.1、172.16.88.128 和 192.168.56.1,它们都来自我的 Mac 和我本地网络上的另一个 machine。一切都没有用。

我的 Mac 和 Windows VM 上的防火墙都被禁用了。

如何从我的 Mac 和其他本地 mac 网络连接到此服务器?

更新:

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                   NAMES
87a9527a1a66        capgraph            "/opt/django/CAPgr..."   2 hours ago         Up 2 hours          443/tcp, 0.0.0.0:80->80/tcp, 8006/tcp   capgraph

在我的 Vagrantfile 中我有:

  config.vm.network "forwarded_port", guest: 80, host: 9003

您需要在 VMware 设置中添加另一个网络适配器,这应该与您的 Wifi 网络桥接,因为您正在使用它。

这将允许您的 VM 在 10.0.0.X 系列中拥有另一个 IP。该应用程序将在 10.0.0.X:9003

上可用