对于虚拟计算,KVM太重量,KVM意味着一套完整的系统。而docker则不一样,docker保证应用运行的必要依赖和隔离,比较轻量,是虚拟计算的趋势。

而实际应用中,是物理机创建KVM,然后VM上跑docker,所以从搭建KVM开始,主要是也没办法,我笔记本是Windows,需要linux系统,只能整KVM了。

那么安装VMware12后,创建相关资源,主要注意点是网络模式。有三种模式:桥接模式,虚机直接连外网,相当于局域网中增加了一台计算机,不推荐,占ip资源。仅主机模式,虚机与主机直连,但不能访问外网,创建VMnet1虚拟网卡;NAT模式,一方面继承了仅主机模式,保证虚机与主机能通信,另一方面,创建VMnet8虚拟网卡,相当于交换机,控制了虚机局域网互联,然后VMnet8与本地连接建立关系,保证虚机能访问外网。

alt

网上以讹传讹,实际图中VMnet8网卡应该是VMnet1。VMnet8网卡控制虚机能否上外网,而VMnet1控制虚机与主机通信

1. 测试创建好的虚机是否能通外网

创建完成后,因为刚创建好的虚机,ip没有绑定,是通过dhcp自动获取ip的,我们需要让虚机获取ip,我们修改网卡配置,我们就用系统默认的ens33网卡就行。

vi /etc/sysconfig/network-scripts/ifcfg-ens33

alt

将onboot改为yes,然后reboot

接着我们ping www.baidu.com,发现能通,说明我们的NAT模式成功生效了。

2. 修改虚机ip为静态ip

虚机ip每次重启都会变,肯定是不方便的,所以我们让其ip固定下来。

1、采用NAT模式连接。

首先,设置虚拟机中NAT模式的选项,打开vmware,点击“编辑”下的“虚拟网络编辑器”。

alt

通过图中红框NAT设置和DHCP设置可以找到NETMASK(子网掩码),GATEWAY(网关),IPADDR(ip地址),记录下来。

alt

alt

按照以上3副图依次设置。完成后,打开centos,进入root模式,

vi /etc/sysconfig/network-scripts/ifcfg-ens33

在文件中添加NETMASK(子网掩码),GATEWAY(网关),IPADDR(ip地址),将刚才记录的地址写上,并将ONBOOT改为yes(此变量控制网卡能否上网),我将BOOTPROTO设置为none,设置为static也可以。

alt

注意,原有的内容不要删除。

2、 设置DNS,

 vi /etc/resolv.conf  

 114.114.114.114

3、 service network restart

 重启网络服务,使配置生效。

4、 ping www.baidu.com

 试试效果

能够连上外网之后,如果发现用ifconfig,结果提示command not found,只需要执行:yum install net-tools即可

3. 问题定位

  1. 本机xshell无法连接虚机

我们的VMnet1控制主机与虚机通信,而VMnet1也是连接到VMnet8的交换机上的,那么虚机要和VMnet8交换机通,我们登陆到虚机后,ping VMnet8网关,如果不通,说明虚机网关填写不对。

并且虚机ip需要在VMnet8的子网范围内。

  1. 虚机无法上外网

系统默认的ens33网卡配置不要删除原有内容,只要不删除原有内容而是新增ip、掩码、网关,一套下来,虚机都是能连外网的。

要是还是不能连,去百度吧