关于ide:再见了VMware一款更轻量级的虚拟机

10次阅读

共计 4588 个字符,预计需要花费 12 分钟才能阅读完成。

以下文章来源于 陌 溪 教 你 学 编 程,作者: 陌 溪

最近,打算在 Mac 电脑上装置一个虚拟机,用来学习 K8S

首先想到的是 VmwareParallels Desktop,而后关上浏览器找了找,发现都只提供付费版本,只有 Parallels Desktop 提供了 14 天的收费试用。

而后,开始尝试应用收费 VirtualBox,然而在装置 CentOS 的时候,貌似因为 MacOS 最新版本的起因,总是报错,破费了好几天的工夫,试过各种计划,最终解决无果,就放弃了。。

就在陌溪要放弃的时候,忽然在 Ubuntu 官网进行冲浪的时候,发现了一款叫 Multipass 的货色。

它能够疾速在电脑上疾速搭建一个轻量级的虚拟机,并且相比于 Vmware 更加轻量,只需一行命令疾速创立 Ubuntu 虚拟机。

Multipass 是一个轻量虚拟机管理器,是由 Ubuntu 经营公司 Canonical 所推出的开源我的项目。运行环境反对 LinuxWindowsmacOS。在不同的操作系统上,应用的是不同的虚拟化技术。在 Linux 上应用的是 KVMWindow 上应用 Hyper-VmacOS 中应用 HyperKit 以最小开销运行 VM,反对在笔记本模仿小型云。

同时,Multipass 提供了一个命令行界面来启动和治理 Linux 实例。下载一个全新的镜像须要几秒钟的工夫,并且在几分钟内就能够启动并运行 VM。(直呼好家伙,大大降低的咱们装置虚拟机的老本了)

Multipass 官网:https://multipass.run/

开始应用

在应用 Multipass 之前,首先须要装置 Multipass 工具,能够关上官网进行下载

https://multipass.run/

抉择对应的操作系统,因为我的是 Mac 电脑,所以抉择 MacOS,点击 Download 开始下载

如果电脑装了 brew 能够间接命令行下载安装:

brew cask install multipass

下载安装胜利后, 执行以下命令能够查看以后软件版本:

multipass --version

装置胜利后,点击运行,即可关上 Multipass 客户端,这里可能疾速的通过 Open Shell 创立和启动一个虚拟机

上面,咱们来介绍如何通过命令的形式,创立一台虚拟机

创立 Ubuntu 虚拟机

首先,通过以下指令查看可供下载的 Ubuntu 镜像

multipass find

运行胜利后,能够看到上面的这些镜像列表,蕴含各种版本的

Image                       Aliases           Version          Description
core                        core16            20200818         Ubuntu Core 16
core18                                        20200812         Ubuntu Core 18
18.04                       bionic            20211109         Ubuntu 18.04 LTS
20.04                       focal,lts         20211118         Ubuntu 20.04 LTS
21.04                       hirsute           20211119         Ubuntu 21.04
21.10                       impish            20211103         Ubuntu 21.10
appliance:adguard-home                        20200812         Ubuntu AdGuard Home Appliance
appliance:mosquitto                           20200812         Ubuntu Mosquitto Appliance
appliance:nextcloud                           20200812         Ubuntu Nextcloud Appliance
appliance:openhab                             20200812         Ubuntu openHAB Home Appliance
appliance:plexmediaserver                     20200812         Ubuntu Plex Media Server Appliance
anbox-cloud-appliance                         latest           Anbox Cloud Appliance
minikube                                      latest           minikube is local Kubernetes

下载最新版的 Ubuntu 镜像并运行,首次创立时须要下载 Ubuntu 镜像,网络畅通的状况下,稍等片刻即可。

multipass launch -n vm01 -c 1 -m 1G -d 10G

自定义配置创立能够参考如下形式:

-n, --name: 名称
-c, --cpus: cpu 外围数, 默认: 1
-m, --mem: 内存大小, 默认: 1G
-d, --disk: 硬盘大小, 默认: 5G

操作虚拟机

查看虚拟机列表

虚拟机创立实现后,能够应用 multipass list 命令进行查看虚拟机列表

% multipass list
Name                    State             IPv4             Image
vm01                    Running           192.168.64.2     Ubuntu 20.04 LTS

能够看到目前正在运行一台 Ubuntu 20.04 版本的虚拟机,并且对应的 IP 地址为 192.168.64.2

内部操作虚拟机

通过 multipass exec 命令在实例内执行给定的命令。第一个参数是运行命令的实例,也就是 vm01

咱们通过 exec 命令,就能够在内部操作刚刚创立的虚拟机,例如查看外部所处的目录,执行 pwd 命令

# multipass exec vm01 pwd
/home/ubuntu

查看虚拟机信息

通过 multipass info 命令,即可查看以后运行的虚拟机信息

# multipass info vm01
Name:           vm01
State:          Running
IPv4:           192.168.64.2
Release:        Ubuntu 20.04.3 LTS
Image hash:     91740d72ffff (Ubuntu 20.04 LTS)
Load:           0.00 0.00 0.00
Disk usage:     1.3G out of 9.5G
Memory usage:   170.9M out of 1.9G
Mounts:         --

进入虚拟机

通过 multipass shell 命令,即可进入到虚拟机外部

multipass shell vm01

运行后的后果如下所示,能够看到目前虚拟机的一些系统配置信息,以及内存和磁盘的应用状况

同时会运行一个新的 Ubuntu 零碎,此时便进入到了Ubuntu 环境中, 在外面能够执行相干的 linux 指令

当然如果不想进入零碎外部,也能够通过上述提到的 multipass exce 命令,来操作 Ubuntu 零碎

首先执行上面命令,给零碎设置一个 root 明码,设置好明码后,应用 su root 切换到 root 用户

# 设置明码
sudo passwd
# 切换 root
su root

ubuntu 是应用 apt-get 来进行包治理的,首先更新一下 apt-get,而后装置 nginx

# 更新 apt
apt-get update
# 装置 nginx
apt-get install nginx

装置好 nginx 后,能够到 /etc/nginx 目录即可看到刚刚的 nginx 配置信息

root@vm01:/lost+found# cd /etc/nginx/
root@vm01:/etc/nginx# ls
conf.d        fastcgi_params  koi-win     modules-available  nginx.conf    scgi_params      sites-enabled  uwsgi_params
fastcgi.conf  koi-utf         mime.types  modules-enabled    proxy_params  sites-available  snippets       win-utf

上面咱们能够测试一下,nginx 是否装置胜利,在 mac 上关上浏览器,输出虚拟机的 ip 地址 192.168.64.2

能够看出,目前 nginx 曾经胜利运行了,后续的话,可能会思考在下面部署更多的利用,感兴趣的小伙伴欢送关注~

挂载数据卷

multipass 还提供和 Docker 一样的挂载数据卷的性能,可能与内部宿主机的文件放弃同步。

# 挂载格局
multipass mount 宿主机目录  实例名: 虚拟机目录

上面,我在用户的目录下,创立一个 hello 目录

# 创立 hello 目录
mkdir hello
# 挂载
multipass mount /Users/moxi/hello  vm01:/hello

挂载实现后,咱们回到实例 vm01 中,能够看出多了一个 hello 文件夹,阐明曾经胜利挂载~

因而,当前在 vm01hello 文件夹 中创立的文件,都会在的宿主机的 hello 文件夹 同步显示

卸载数据卷

如果当前不须要用到挂载了,能够应用 unmount 命令卸载

# 卸载数据卷
multipass umount 容器名

传输文件

除了应用上述的 mount 挂载卷的形式实现文件的交互,同时还能够通过 transfer 命令,将宿主机的文件,发送到虚拟机外部

multipass transfer 主机文件 容器名: 容器目录

例如,将 hello.txt 发送到

multipass transfer hello.txt vm01:/home/ubuntu/

删除和开释实例

应用上面的命令,能够开启、进行、删除和开释实例

# 启动实例
multipass start vm01
# 进行实例
multipass stop vm01
# 删除实例(删除后,还会存在)multipass delete vm01
# 开释实例(彻底删除)multipass purge vm01

容器配置自动化

为了放弃开发环境和线上环境一致性 同时节俭部署工夫 multipass 给咱们提供了 –cloud-init 选项进行容器启动初始化配置:

multipass launch --name ubuntu --cloud-init config.yaml

下面 config.yaml 则是容器的初始化配置文件,例如,咱们想在初始化容器的时候,主动下载安装 Node.js,内容如下:

#cloud-config
runcmd:
  - curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
  - sudo apt-get install -y nodejs

runcmd 能够指定容器 首次启动 时运行的命令

但凡用户自定义的 cloud-init 的配置文件, 必须以 #cloud-config 结尾,这是 cloud-init 辨认它的形式。

yaml 配置文件能够参考上面的文章

https://cloudinit.readthedocs.io/en/latest/topics/examples.html?highlight=lock-passwd#including-users-and-groups

更多对于 multipass 的高阶的技巧,欢送拜访 multipass 官网文档

https://multipass.run/docs/

好了,本期对于 Multipass 的根底学习就到这里了,感兴趣的小伙伴环境下载本人入手学习呢~

总结

应用了一阵子后,Multipass 在应用起来很简洁直观,在整体操作上和 docker 相似,如果想在本人电脑上疾速搭建一个 Linux 零碎用于学习的话,抉择应用 Multipass 还是十分不便的。

惟一有余的中央就是,Multipass 是由 Ubuntu 背地的 Canonical 公司开发的,因而 Multipass 所应用的镜像也都是 Ubuntu 镜像(这也能够了解,毕竟反对自家的产品),不过对于习惯了应用 CentOS 的用户来说,还是用些许不太习惯。不过瑕不掩瑜,Multipass 在我看来还是一款十分棒的软件~

开源前哨 日常分享热门、乏味和实用的开源我的项目。参加保护 10 万 + Star 的开源技术资源库,包含:Python、Java、C/C++、Go、JS、CSS、Node.js、PHP、.NET 等。

正文完
 0