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

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

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

这一需求我目前使用Parallels Desktop来解决,在我本机上安装了WindowsUbuntu的桌面版。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-wallarooMultipassjammy镜像实例随机起的名字,你也可以使用--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同样的效果。

通过VirtualBoxMultipass虚拟机进行可视化操作。

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

推荐一款M1芯片电脑快速搭建集群的虚拟机软件的更多相关文章

  1. 边缘使用 K8s 门槛太高?OpenYurt 这个功能帮你快速搭建集群!

    OpenYurt作为阿里巴巴首个开源的边缘云原生项目,涉及到边缘计算和云原生两个领域.然而,许多边缘计算的开发者并不熟悉云原生相关的知识.为了降低 OpenYurt 的使用门槛,帮助更多地开发者快速上 ...

  2. CentOS7下 简单安装和配置Elasticsearch Kibana Filebeat 快速搭建集群日志收集平台

    目录 1.添加elasticsearch官网的yum源 2.Elasticsearch 安装elasticsearch 配置elasticsearch 启动elasticsearch并设为开机启动 3 ...

  3. 使用windos电脑模拟搭建集群(四)web环境 linux+nginx+jdk+tomcat

    1.使用ansible的playbook自动安装两台web主机的nginx 1.配置模块 主机清单 2.创建 playbook目录并编写安装nginx的playbook mkdir -p playbo ...

  4. 使用windos电脑模拟搭建集群(三)实现全网监控

    这里我们采用小米监控 open-falcon  这是server端就是 192.168.5.200 这台主机, agent就是负责将数据提交到 server端       agent整个集群所有主机都 ...

  5. Linux+.NetCore+Nginx搭建集群

    本篇和大家分享的是Linux+NetCore+Nginx搭建负载集群,对于netcore2.0发布后,我一直在看官网的文档并学习,关注有哪些新增的东西,我,一个从1.0到2.0的跟随者这里只总结一句话 ...

  6. Redis 实战篇之搭建集群

    Redis 集群简介# Redis Cluster 即 Redis 集群,是 Redis 官方在 3.0 版本推出的一套分布式存储方案.完全去中心化,由多个节点组成,所有节点彼此互联.Redis 客户 ...

  7. redis 一二事 - 搭建集群缓存服务器

    在如今并发的环境下,对大数据量的查询采用缓存是最好不过的了,本文使用redis搭建集群 (个人喜欢redis,对memcache不感冒) redis是3.0后增加的集群功能,非常强大 集群中应该至少有 ...

  8. 架构之路:nginx与IIS服务器搭建集群实现负载均衡(二)

    [前言] 在<架构之路:nginx与IIS服务器搭建集群实现负载均衡(一)>中小编简单的讲解了Nginx的原理!俗话说:光说不练假把式.接下来,小编就和大家一起来做个小Demo来体会一下N ...

  9. Nginx学习笔记(反向代理&搭建集群)

    一.前言 1.1 大型互联网架构演变历程 1.1.1 淘宝技术 淘宝的核心技术(国内乃至国际的 Top,这还是2011年的数据) 拥有全国最大的分布式 Hadoop 集群(云梯,2000左右节点,24 ...

随机推荐

  1. 1、【Python运维脚本】Python 按时间删除和清空文件

    删除和清空文件,用shell的话一条命令就够了,Python要一堆命令. 但是为了学习Python,所以用于实战,就得这么干了. Python 按时间删除和清空文件 #!/usr/bin/python ...

  2. 2021.08.16 P1363 幻象迷宫(dfs,我感受到了出题人浓浓的恶意)

    2021.08.16 P1363 幻象迷宫(dfs,我感受到了出题人浓浓的恶意) P1363 幻象迷宫 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 幻象迷宫可以认为是无限 ...

  3. 你不知道的下划线属性-text-decoration

    大家好,我是半夏,一个刚刚开始写文的沙雕程序员.如果喜欢我的文章,可以关注 点赞 加我微信:frontendpicker,一起学习交流前端,成为更优秀的工程师-关注公众号:搞前端的半夏,了解更多前端知 ...

  4. 华硕主板安装Ubuntu双系统无法启动解决办法

    问题描述: 在安装完Ubuntu后,开机后没有启动项可以选择,而是直接进入win10系统. 解决办法: 开机进入bios,选择 高级模式 (Advance model),进入 启动(boot)选项卡, ...

  5. [笔记] 有向无环图 DAG

    最小链覆盖 (最长反链) 最小链覆盖 \(=n-\) 最大匹配. 考虑首先每个点自成一条链,此时恰好有 \(n\) 条链,最终答案一定是合并(首尾相接)若干条链形成的. 将两点匹配的含义其实就是将链合 ...

  6. Kubernetes 的这些原理,你一定要了解

    点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 作者:fredalxin地址:https://freda ...

  7. 关于数据拓展及面试题讲解 Java

    强类型语言  要求变量的使用严格符合规定,所有变量都必须先定义后才能使用 弱类型语言 Java 的数控类型分为两大类 基本类型(primitive type) 引用类型(reference type) ...

  8. 有关 ThreadLocal 的一切

    早上好,各位新老读者们,我是七淅(xī). 今天和大家分享的是面试常驻嘉宾:ThreadLocal 当初鹅厂一面就有问到它,问题的答案在下面正文的第 2 点. 1. 底层结构 ThreadLocal ...

  9. python操作MySQL、事务、SQL注入问题

    python操作MySQL python中支持操作MySQl的模块很多 其中最常见就是'pymysql' # 属于第三方模块 pip3 install pymysql # 基本使用 import py ...

  10. Windows IDEA Community 报错

    运行时报错 "CreateProcess error=206,文件名或扩展名太长" 解决方法:https://plugins.gradle.org/plugin/ua.eshepe ...