01. VirtualBox 教程

作为程序员,平时在学习一下新技术的时候难免会碰到需要搭建测试环境的情况,那么虚拟机是绕不过去的弯,特别是现在微服务盛行,容器化,集群环境的搭建演练,更是离不开他。所以我整理了我目前了解的情况,希望可以帮助到大家。

1. 什么是虚拟化技术?

简单说就是对计算机硬件资源的管理技术,包括硬盘,CPU、显卡、网络适配器等等。

常见的虚拟机有 VirtualBox,VMware,KVM,Hyper-V,主要作用就是利用宿主机的资源,通过组织划分为多台机器,每个机器都具备完整的硬件功能和各自的操作系统。
说到这里顺便提一嘴,Docker,容器虚拟化技术,它更加快速简洁,可以快速启动,实现环境隔离,相比于虚拟机开销更小。

2. 为什么选择 VirtualBox?

KVM:只能在Linux上使用
Hyper-V:Windows上使用
VMWare Workstation:免费版:无快照,克隆功能,收费版:非常强大,不过可破解😄,而且最新版个人非商业用途也免费了,想用这个的可以自行研究一下。
VirtualBox:开源免费,该有的功能基本上都有,简单易上手。

3. VirtualBox 安装和配置

官网下载:https://www.virtualbox.org/
image.png
双击安装包,根据引导安装
image.png

第一个坑,无法安装到其它盘,默认只能装C盘,解决方式:
https://www.virtualbox.org/manual/UserManual.html#installation
在我们想装的地址新建文件夹,我这里是 D:\virtualBox,
进入CMD,依次执行以下命令:

icacls D:\virtualBox /reset /t /c
icacls D:\virtualBox /inheritance:d /t /c
icacls D:\virtualBox /grant *S-1-5-32-545:(OI)(CI)(RX)
icacls D:\virtualBox /deny  *S-1-5-32-545:(DE,WD,AD,WEA,WA)
icacls D:\virtualBox /grant *S-1-5-11:(OI)(CI)(RX)
icacls D:\virtualBox /deny  *S-1-5-11:(DE,WD,AD,WEA,WA)

之后重新安装即可, 正确安装后打开,可看到如下界面

image.png

3.1. 全局设定

image.png
将默认虚拟电脑位置改到其它地方,不要放C盘
image.png

3.2. 安装 window10 虚拟机

第一步: 下载镜像文件 https://next.itellyou.cn/ 这里下载
第二步: 打开 VirtualBox,新建虚拟机,填写好名称,选中自己下载好的镜像文件,点击【下一步】
image.png
第三步: 设置好用户名密码,点击【下一步】
image.png
第四步: 分配硬件资源,建议控制在绿色范围内,否则可能会有问题,点击【下一步】
image.png
第五步: 创建虚拟硬盘,选择现在创建虚拟硬盘,根据自己情况分配存储大小。点击【下一步】
image.png
第六步: 点击【完成】
image.png
第七步: 打开虚拟电脑存储路径查看
image.png
第八步: 启动虚拟机,等待自动安装系统
第九步: 安装完成后会发现,分辨率有问题,展示不全,这时候需要安装一下增强程序,其实可以在第三步的时候直接勾选上,但是我忘了,这里正好介绍一下怎么后补。
在虚拟机界面左上角,【设备】> 【安装增强功能】
image.png
然后打开我的电脑,快捷键 win + E 看到如下界面图标,则表示安装成功
image.png
双击,驱动器打开
image.png
双击 amd64,根据指引,一直 next 完成安装, 安装好会自动重启系统。重启完成后,将分辨率设置为最大即可。如果发现还是无法全屏,将界面取消全屏后,再全屏一下试试。
第10步: 在设备里打开双向粘贴板共享,之后就可以两边互相复制了
image.png
第11步: 在设备里打开双向拖放功能,这样就可以两边文件互传了,如果出现无法使用,重启一下虚拟机。
image.png
还有一个共享文件夹的增强功能,可以自行研究一下
image.png

4. 使用 Vagrant 快速搭建Linux环境

当热你也可以自己下载镜像,像windows一样,自己手动安装好虚拟机的系统环境,但是这里我介绍一个更高效的方式。使用Vagrant

Vargrant 打的口号就是 “Development Environments Made Easy”开发环境变得更简单。
官网下载:https://developer.hashicorp.com/vagrant
下载好安装即可
镜像仓库:https://app.vagrantup.com/boxes/search
查找我们需要的,这里我们搭建环境基于centos7
image.png
点击我们选中的,复制命令,去 CMD 窗口执行即可,这里要注意执行的路径,默认会把 Vagrantfile 下载当前路径
image.png
下载可能比较耗时,耐心等待

4.1. 配置网络

全部下载安装完成后,接下来配置网络环境。
这里我使用仅主机模式,最简单。
image.png
设置选择仅主机模式,点击确定
这个时候去查看一下网络配置
image.png
可以看到有好几个IP,这里要注意,我们要选择由 VirtualBox 生成的,但是这里好像没有展示,可能是我本地还有VMware导致的,那除了 **VMware Network Adapter VMnet1: 剩下的那个应该就是的了,我这里就是192.168.56.1,**验证一下,打开网络设置,一眼就看到了 VirtualBox Host-Only Ethernet Adapter
image.png
image.png
然后修改我们的 Vagrantfile ,这样在虚拟机拉起的时候会自动配置好虚拟机的 **IP **地址。
image.png
注意网段,这里只能是 192.168.56.1 - 192.168.56.255
验证一下是否设置成功
vagrant up 或者 vagrant reload 重启一下虚拟机
连接上虚拟机,vagrant ssh
和本地互相 ping 一下,发现可以正常 ping
image.png
再用虚拟机 ping 一下外网,百度,测试也正常
image.png
在 **cmd **窗口操作非常不方便,我习惯使用 xshell 来连接客户端
默认用户名为 vagrant
这里需要 publicKey 他就在我们拉起时 Vagrantfile 所在的目录下
我的在这里 D:\virtualBox\vagrant.vagrant\machines\default\virtualbox
image.png
image.png
这样我们就完成虚拟机环境的搭建了

4.2. 修改一下虚拟机的yum源,方便后续下载包

首先备份

 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

下载国内yum源配置文件到/etc/yum.repos.d/CentOS-Base.repo

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

下载不下来直接去修改 CentOS-Base.repo 内容全覆盖成下面这个

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#
 
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#released updates 
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

清理 yum 缓存并更新

sudo yum clean all
sudo yum makecache
sudo yum update

5. 导入导出虚拟机

这个自己根据指引,操作即可,没什么难度。

导入导出的使用场景,对于我自己而言,主要是自己折腾环境的时候,比如CentOS,我一般会新建一个基础版虚拟机,然后导出一份作为模板,后续在这个基础上直接导入,修改一下参数即可快速创建好一个虚拟机,无需再重新安装操作系统。

6. 删除和注册

注册其实就是建立虚拟机与 VirtualBox 之间的关联关系。
这里要说一下删除,删除分为两种,如果直接删除所有文件,那么虚拟机会完全删除,在资源管理器中也会被删除,而移除,只是删除了虚拟机与 VirtualBox 的关联,之后我们可以通过注册重新关联回来。
所以如果是我们不想要的虚拟机,可以直接删除所有文件,如果只是暂时不想管理他了,可以先将它移除。
image.png

7. 复制和批量管理虚拟机

克隆,显而易见就是复制一份当前的虚拟机,只不过配置完全一模一样,便于开始创建多个虚拟机,不用自己导出再导入。当我们搭建集群测试环境的时候很方便,注意复制的时候要修改一下Mac地址,以及UUID。
image.png
复制又分为完全复制链接复制
完全复制:虚拟机文件和虚拟机硬盘文件,都会复制
链接复制:只会复制虚拟机文件,硬盘文件用的还是之前的硬盘文件

批量操作:
鼠标左键选中虚拟机,长按不松手,将虚拟机拖动到另一个虚拟机上,即可完成编组
image.png
选中编组,即可对这一组虚拟机批量操作,批量启动,停机等操作
在这里插入图片描述

8. 快照功能

可以将虚拟机在某一时刻的状态保存下来,在以后任何时候都可以恢复到这一状态下,比如我们需要做一些毁灭性的测试,rm -rf /*,在执行之前如果有快照,那么就可以很容易恢复到删除之前的状态了。

image.png
点击【生成】
image.png
然后可以在虚拟机路径下看到生成了一个虚拟机文件
D:\virtualBox\VirtualBox VMs\新编组\win10 副本\Snapshots
image.png
这里采用的是增量备份,所以可以看到这个虚拟机文件大小很小。
如果你在开机的状态下备份,还会生成一个.sav文件,记录当时内存的状态,当你恢复的时候内存一样可以恢复。
注意:删除备份的时候一定要在VirtualBox客户端里删除,不要自己在资源管理器中直接删除,因为这里是增量备份,如果直接把文件删除了,会出大问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曹申阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值