推荐一款M1芯片电脑快速搭建集群的虚拟机软件

更新日期: 2022-06-23阅读: 1.5k标签: 软件

虚拟机软件太多了,出名的莫过于 VMware , VirutlaBox 以及 Parallels Desktop 。

我们使用虚拟机软件一般有两种用途:

  1. 安装不同于宿主机系统的拥有用户界面的操作系统,比如Windows安装桌面版 Ubuntu ,Mac安装 Windows 等,用于日常工作和生活的使用;

这一需求我目前使用 Parallels Desktop 来解决,在我本机上安装了 Windows 和 Ubuntu 的桌面版。 Parallels Desktop 除了贵,没有其他问题!


  1. 另一种是便于开发者快速创建和部署虚拟化开发环境(集群环境),本文推荐的虚拟软件就是这个作用。

之前我在Windows上都是使用 VirtualBox + Vagrant 的方式快速创建和销毁虚拟机。现在我的工作主机换成了M1芯片的Mac,而 VirtualBox 并没有给予适配。

最近发现了一款叫做 Multipass 的虚拟机软件,重点是,我的M1电脑可以使用!接下来给大家分享一下使用心得。


1. 下载安装Multipass

Mac下推荐使用 brew 安装 Multipass ,免去了点击下载,解压以及安装的步骤

brew install --cask multipass

安装之后,查看是否安装成功

➜  ~ multipass version
multipass   1.9.2+mac
multipassd  1.9.2+mac


2. 查看Multipass支持的镜像

➜  ~ 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 的发行版镜像,这对于开发人员开说并不算什么缺点,至少对我是这样的


3. 创建虚拟机

接下来我们选择需要的镜像版本来安装 Ubuntu 实例,这里以 jammy (镜像列表的 Aliases 一列)为例

➜  ~ multipass launch jammy
Launched: boss-wallaroo

其中, boss-wallaroo 是 Multipass 给 jammy 镜像实例随机起的名字,你也可以使用 --name 来指定实例名称。

~ multipass launch jammy --name chanmufeng-ubuntu
Launched: chanmufeng-ubuntu


4. 操作虚拟机

4.1. 查看虚拟机列表

使用 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 (停止状态)。

4.2. 进入虚拟机,执行命令

执行 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 中自由地玩耍了。

4.3. 停止/重启虚拟机

# 暂停
➜  ~ multipass stop lucky-dog
# 启动
➜  ~ multipass start lucky-dog

4.4. 移除实例到“回收站”

使用如下命令删除实例

➜  ~ 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

4.5. 彻底删除实例

这一步相当于从“回收站”彻底删除,当然了,前提是实例必须已经被放在了“回收站”。

➜  ~ multipass delete chanmufeng-ubuntu
➜  ~ multipass purge
➜  ~ multipass list
Name                    State             IPv4             Image
lucky-dog               Running           192.168.64.2     Ubuntu 22.04 LTS


5. 其他进阶功能

除了以上基本功能, Multipass 还提供其他进阶功能,本文只是提一嘴,更多细节,大家访问官网查看一下文档即可。

5.1. 自定义硬件配置

  • 可以自定义CPU核心数、硬盘大小以及内存大小等参数

  • 自定义网卡配置和DNS配置

5.2. 快速配置环境

虚拟机功能给我们带来的好处就是对于实例,我们想建就建,想删就删。

可是删了之后重新建立,难免很多软件和工具需要重新进行配置, 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 可以指定容器首次启动时运行的命令

5.3. 搭配VirtualBox

当然,这个功能不适合M1,但是在其他平台上搭配 VirtualBox 可以实现和 Vagrant 同样的效果。

通过 VirtualBox 对 Multipass 虚拟机进行可视化操作。

还有其他的一些功能需要读者朋友们自己发掘一下了,更多细节参见 官网 。

链接: https://fly63.com/article/detial/11789

ManageEngine全球副总裁Sabhlok:通过简单易用的工具软件来优化IT 运维管理

人物简介:ManageEngine全球副总裁,获杜克大学福库商学院MBA学位。拥有超过20年的企业级软件行业经历,曾就职于Embarcadero、BMC等公司, 任技术、营销、销售与执行高级管理职位。十多年前,除了那些最大的公司外

时下流行的9种恶意软件,你都了解吗?

当今时代,网络世界处处充满了危机,对于网络用户来说,能够对各种类型的恶意软件进行了解,也许有助于在网上冲浪的过程中保全自身。病毒、蠕虫、木马、杂交程序和僵尸网络、勒索软件

软件开发行业应该有职业道德规范来约束吗?

在软件开发领域,经常会发生由于从业者的职业道德不到位而引发的事件,比如,InfoQ 过往就曾报道过离职程序员利用测试账户套现千万美元、华夏银行一位技术处长利用职务便利在华夏银行总行核心系统内植入计算机病毒程序

常用报表软件有哪些?

在企业管理过程中,报表往往都会通过一些简洁的图表方式,为大家呈现所有的数据。报表软件,可以在操作的过程中有效提升工作效率,所以有很多企业早就已经选择跟随信息技术的潮流,选择报表软件工具。

如何打造一款好软件?

糟糕的软件是世界上为数不多的无法用金钱解决的问题之一。数十亿美元的航空公司拥有的航班搜索应用程序往往不如学生群体开发的那些应用程序好用。尽管面临着拼车服务的威胁,世界各地的老牌出租车公司还在使用糟糕

如何在软件开发行业选择一条正确的职业道路?

当我进入软件开发领域时,我非常兴奋。我想要同时学习所有东西:游戏开发、移动开发、人工智能以及所有与之相关的内容。我把时间浪费在了写“hello world”和一些简单的程序上,使用了大约 30 种语言,只是为了弄清楚我应该学哪一种

如何应对软件复杂度

至今也写了四年多代码,但如何在功能不断增多的同时写出可读、可维护、可扩展的或者说优雅的代码一直令我感到非常困惑。最近读了《Clean Architecture》以及 Domain Driven Design(简称 DDD) 相关软件架构的书,对这个问题有了进一步的思考。

软件的复杂性正在杀死我们

现在有一个常见现象:企业想要更快更便宜地构建软件。这当然是一个可以理解和值得称赞的目标。且每个工程师都应该全心全意支持这个目标。

软件开发的七条原则

软件系统存在的原因:为用户提供价值。所有的决定都应该考虑到这一点。在指定系统需求之前,在关注系统的各个功能之前,在确定硬件平台或开发过程之前,问问自己以下问题:这是否能为系统真正增加价值?

关于软件开发你真正需要知道的几个事情

我之所以写这篇文章是因为有一个朋友最近决定跻身软件工程行业。我的这位朋友聪明,精力充沛,品貌兼优,又善于学习:每个人都认为这样的人才必将有一番作为。但是,在踏出第一步时,他依然有很多东西需要学习。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!