在 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
上可用
在我的 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