虚拟机软件太多了,出名的莫过于 VMware , VirutlaBox 以及 Parallels Desktop 。
我们使用虚拟机软件一般有两种用途:
这一需求我目前使用 Parallels Desktop 来解决,在我本机上安装了 Windows 和 Ubuntu 的桌面版。 Parallels Desktop 除了贵,没有其他问题!
之前我在Windows上都是使用 VirtualBox + Vagrant 的方式快速创建和销毁虚拟机。现在我的工作主机换成了M1芯片的Mac,而 VirtualBox 并没有给予适配。
最近发现了一款叫做 Multipass 的虚拟机软件,重点是,我的M1电脑可以使用!接下来给大家分享一下使用心得。
Mac下推荐使用 brew 安装 Multipass ,免去了点击下载,解压以及安装的步骤
brew install --cask multipass
安装之后,查看是否安装成功
➜ ~ multipass version
multipass 1.9.2+mac
multipassd 1.9.2+mac
➜ ~ multipass find
Image Aliases Version Description
18.04 bionic 20220615 Ubuntu 18.04 LTS
20.04 focal,lts 20220615 Ubuntu 20.04 LTS
21.10 impish 20220609 Ubuntu 21.10
22.04 jammy 20220609 Ubuntu 22.04 LTS
anbox-cloud-appliance latest Anbox Cloud Appliance
charm-dev latest A development and testing environment for charmers
docker latest A Docker environment with Portainer and related tools
minikube latest minikube is local Kubernetes
注意: Multipass 只提供了 Ubuntu 的发行版镜像,这对于开发人员开说并不算什么缺点,至少对我是这样的
接下来我们选择需要的镜像版本来安装 Ubuntu 实例,这里以 jammy (镜像列表的 Aliases 一列)为例
➜ ~ multipass launch jammy
Launched: boss-wallaroo
其中, boss-wallaroo 是 Multipass 给 jammy 镜像实例随机起的名字,你也可以使用 --name 来指定实例名称。
~ multipass launch jammy --name chanmufeng-ubuntu
Launched: chanmufeng-ubuntu
使用 multipass info --all 查看安装的所有虚拟机
➜ ~ multipass info --all
Name: chanmufeng-ubuntu
State: Running
IPv4: 192.168.64.3
Release: Ubuntu 22.04 LTS
Image hash: 746fd17e2944 (Ubuntu 22.04 LTS)
Load: 0.02 0.02 0.00
Disk usage: 1.3G out of 4.7G
Memory usage: 162.4M out of 961.9M
Mounts: --
Name: lucky-dog
State: Stopped
IPv4: --
Release: --
Image hash: 746fd17e2944 (Ubuntu 22.04 LTS)
Load: --
Disk usage: --
Memory usage: --
Mounts: --
执行结果表明,我电脑上有了2个实例,分别是 chanmufeng-ubuntu (运行中)、 lucky-dog (停止状态)。
执行 multipass shell 实例名 进入实例,如果实例未启动,则会自动启动
➜ ~ multipass shell lucky-dog
Welcome to Ubuntu 22.04 LTS (GNU/Linux 5.15.0-37-generic aarch64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Sun Jun 19 21:06:43 CST 2022
System load: 0.3203125
Usage of /: 29.8% of 4.77GB
Memory usage: 20%
Swap usage: 0%
Processes: 100
Users logged in: 0
IPv4 address for enp0s1: 192.168.64.2
IPv6 address for enp0s1: fd96:8c7d:a0ba:459d:5054:ff:fea5:1ea3
0 updates can be applied immediately.
Last login: Tue Jun 14 13:41:27 2022 from 192.168.64.1
ubuntu@lucky-dog:~$ ~
然后就可以在 lucky-dog 中自由地玩耍了。
# 暂停
➜ ~ multipass stop lucky-dog
# 启动
➜ ~ multipass start lucky-dog
使用如下命令删除实例
➜ ~ multipass delete chanmufeng-ubuntu
delete 命令只是将 chanmufeng-ubuntu 实例标记为 DELETED 状态而已,相当于放到了回收站,但是本身依然存在。
使用 list 命令看一下
➜ ~ multipass list
Name State IPv4 Image
chanmufeng-ubuntu Deleted -- Not Available
lucky-dog Running 192.168.64.2 Ubuntu 22.04 LTS
如果后悔了,可以使用 recover 命令进行撤销
➜ ~ multipass recover chanmufeng-ubuntu
再次使用 list 命令看一下
➜ ~ multipass list
Name State IPv4 Image
chanmufeng-ubuntu Stopped -- Not Available
lucky-dog Running 192.168.64.2 Ubuntu 22.04 LTS
这一步相当于从“回收站”彻底删除,当然了,前提是实例必须已经被放在了“回收站”。
➜ ~ multipass delete chanmufeng-ubuntu
➜ ~ multipass purge
➜ ~ multipass list
Name State IPv4 Image
lucky-dog Running 192.168.64.2 Ubuntu 22.04 LTS
除了以上基本功能, Multipass 还提供其他进阶功能,本文只是提一嘴,更多细节,大家访问官网查看一下文档即可。
可以自定义CPU核心数、硬盘大小以及内存大小等参数
自定义网卡配置和DNS配置
虚拟机功能给我们带来的好处就是对于实例,我们想建就建,想删就删。
可是删了之后重新建立,难免很多软件和工具需要重新进行配置, Mutipass 提供了 --cloud-init 对容器进行初始化配置。
➜ ~ multipass launch --name ubuntu --cloud-init config.yaml
config.yaml 是初始化配置文件,内容如下:
runcmd:
- curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
- sudo apt-get install -y nodejs
runcmd 可以指定容器首次启动时运行的命令
当然,这个功能不适合M1,但是在其他平台上搭配 VirtualBox 可以实现和 Vagrant 同样的效果。
通过 VirtualBox 对 Multipass 虚拟机进行可视化操作。
还有其他的一些功能需要读者朋友们自己发掘一下了,更多细节参见 官网 。
人物简介:ManageEngine全球副总裁,获杜克大学福库商学院MBA学位。拥有超过20年的企业级软件行业经历,曾就职于Embarcadero、BMC等公司, 任技术、营销、销售与执行高级管理职位。十多年前,除了那些最大的公司外
当今时代,网络世界处处充满了危机,对于网络用户来说,能够对各种类型的恶意软件进行了解,也许有助于在网上冲浪的过程中保全自身。病毒、蠕虫、木马、杂交程序和僵尸网络、勒索软件
在软件开发领域,经常会发生由于从业者的职业道德不到位而引发的事件,比如,InfoQ 过往就曾报道过离职程序员利用测试账户套现千万美元、华夏银行一位技术处长利用职务便利在华夏银行总行核心系统内植入计算机病毒程序
在企业管理过程中,报表往往都会通过一些简洁的图表方式,为大家呈现所有的数据。报表软件,可以在操作的过程中有效提升工作效率,所以有很多企业早就已经选择跟随信息技术的潮流,选择报表软件工具。
糟糕的软件是世界上为数不多的无法用金钱解决的问题之一。数十亿美元的航空公司拥有的航班搜索应用程序往往不如学生群体开发的那些应用程序好用。尽管面临着拼车服务的威胁,世界各地的老牌出租车公司还在使用糟糕
当我进入软件开发领域时,我非常兴奋。我想要同时学习所有东西:游戏开发、移动开发、人工智能以及所有与之相关的内容。我把时间浪费在了写“hello world”和一些简单的程序上,使用了大约 30 种语言,只是为了弄清楚我应该学哪一种
至今也写了四年多代码,但如何在功能不断增多的同时写出可读、可维护、可扩展的或者说优雅的代码一直令我感到非常困惑。最近读了《Clean Architecture》以及 Domain Driven Design(简称 DDD) 相关软件架构的书,对这个问题有了进一步的思考。
现在有一个常见现象:企业想要更快更便宜地构建软件。这当然是一个可以理解和值得称赞的目标。且每个工程师都应该全心全意支持这个目标。
软件系统存在的原因:为用户提供价值。所有的决定都应该考虑到这一点。在指定系统需求之前,在关注系统的各个功能之前,在确定硬件平台或开发过程之前,问问自己以下问题:这是否能为系统真正增加价值?
我之所以写这篇文章是因为有一个朋友最近决定跻身软件工程行业。我的这位朋友聪明,精力充沛,品貌兼优,又善于学习:每个人都认为这样的人才必将有一番作为。但是,在踏出第一步时,他依然有很多东西需要学习。
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!