这里需要较多的理论知识,但现在还未全明白,但是走过的一遍流程大致知道些。在这里记录下学到的理论并用于实践这个demo。
这里主要会用到网络知识、linux的命令、以及docker容器网络的原理、数据库等相关知识。
虚拟机中的几种网卡的设置以及访问关系:
查看 win10 的网络ip的方式:ipconfig
linux的查看物理机的IP地址命令:ipconfig /all
虚拟机要使用Nat模式,便于ubuntu系统访问外网,同时便于(宿主主机)本地win10访问docker容器的数据库。
1、NAT,NetWork Address Translation/网络地址转换。
虚拟机最简单的一种网络连接方式,虚拟主机通过NAT方式进行网络连接,此时的VirtualBox相当充当了一个路由器,连通了虚拟主机(比如linux系统)和宿主主机(win10)。一方面虚拟主机与宿主主机共享宿主主机在网络中的IP,另外一方面虚拟主机也由VirtualBox事先设置的IP中DHCP分配一个10.0.X.XX的IP地址,这就是为什么我们查看虚拟主机的ip的地址时,是一个10网段的ip。
虚拟机的中系统的ip:
即使得ubuntu系统只能从内访问外面而不能从外部访问里面,所以只能单向ping通,虚拟机的ip只是内部ip。(由于虚拟主机也有VirtualBox自动分配的10网段的IP,所以宿主主机及宿主主机网络中的其他机器一般情况下不能访问该虚拟主机,该虚拟主机一般情况下不能访问其他虚拟主机。)
2、为了提供 win 10 访问虚拟机
VirtualBox就提供了一种Port Forwording(端口转发)方式访问虚拟主机 (即在NAT模式只有通过绑定静态转发才可能从外部访问。)
Port Forwording(端口转发)方式访问虚拟主机配置方式:
这里的
几个重要的名词含义:
主机、主机端口:
主机端口则是主机端网络访问虚拟机应用的端口,可按自己需要设置,主机端网络通过主机IP:主机端口,访问虚拟机应用,如ssh连接地址为主机IP:2222 。
子系统ip 、子系统端口:
子系统IP填写虚拟机获取的IP,子系统端口为虚拟机应用的端口,http默认80,ssh默认22。
这里使用这种端口转发的方式,访问虚拟机特定的端口,因此虚拟机的ubuntu系统开放特定的端口。
虚拟机的端口转发设置的可以参考: