Mac电脑上安装一个虚拟机,只需一行14天免费试用

圣诞节快乐

最近打算在自己的Mac电脑上安装一个虚拟机来学习K8S。

我首先想到的是 Vmware 和 Parallels Desktop。然后我打开浏览器搜索,发现他们只提供付费版本,而且只有Parallels Desktop提供14天免费试用。

不能白嫖

然后,我开始尝试使用免费的VirtualBox,但是当我安装CentOS时,似乎因为最新版本的MacOS,我总是报错。折腾了好几天,尝试了各种方案,终于解决了无果,只好作罢。.

就在莫西快要放弃的时候,突然在Ubuntu官网冲浪的时候发现了一个叫做Multipass的东西。

它可以在电脑上快速搭建一个轻量级的虚拟机,并且比Vmware更轻巧,只需一行命令即可快速创建一个Ubuntu虚拟机。

Multipass 是一个轻量级的虚拟机管理器,是 Ubuntu 运营公司 Canonical 推出的一个开源项目。运行环境支持Linux、Windows、macOS。在不同的操作系统上,使用不同的虚拟化技术。Linux上使用KVM,Window上使用Hyper-V,macOS上使用HyperKit以最小的开销运行VM,并且支持在笔记本电脑上模拟小云。

同时,Multipass 提供了命令行界面来启动和管理 Linux 实例。下载一个全新的镜像需要几秒钟的时间,而虚拟机可以在几分钟内启动并运行。(呼唤好心人,安装虚拟机的成本大大降低了)

多通官网:

开始使用Multipass官网

在使用Multipass之前,首先需要安装Multipass工具,可以从官网下载

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

选择对应的版本进行安装

如果电脑上安装了brew,可以直接从命令行下载安装:

下载安装成功后,执行以下命令查看当前软件版本:

安装成功后,点击运行打开Multipass客户端,在这里可以通过Open Shell快速创建和启动虚拟机

多通道客户端

接下来,我们将介绍如何通过命令的方式创建虚拟机

创建 Ubuntu 虚拟机

首先,使用以下说明查看可供下载的 Ubuntu 镜像

运行成功后可以看到如下镜像列表info命令没有用,包括各种版本的镜像

下载最新版本的 Ubuntu 映像并运行它。首次创建时需要下载 Ubuntu 镜像。如果网络打开,请稍等片刻。

可以参考以下方式创建自定义配置:

操作虚拟机

查看虚拟机列表

创建虚拟机后,可以使用multipass list命令查看虚拟机列表

可以看到当前运行的是Ubuntu 20.04版本的虚拟机,对应的IP地址为192.168.64.2

外部操作虚拟机

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

通过exec命令info命令没有用,我们可以在外部操作刚刚创建的虚拟机,比如查看内部目录,执行pwd命令

查看虚拟机信息

通过multipass info命令可以查看当前运行的虚拟机信息

进入虚拟机

通过multipass shell命令可以进入虚拟机

运行后的结果如下,可以看到当前虚拟机的一些系统配置信息,以及内存和磁盘的使用情况

进入虚拟机

同时会运行一个新的Ubuntu系统,这时候就进入了Ubuntu环境,可以执行相关的linux命令

当然,如果不想进入系统,也可以使用上面提到的multipass exce命令来操作Ubuntu系统。

首先执行以下命令为系统设置一个root密码,设置密码后使用su root切换到root用户

Ubuntu使用apt-get进行包管理,先更新apt-get,再安装nginx

安装nginx后,可以到/etc/nginx目录下查看刚才的nginx配置信息

接下来我们可以测试nginx是否安装成功,在mac上打开浏览器,输入虚拟机的ip地址192.168.64.2

nginx安装成功

可以看到,目前nginx已经运行成功。将来,您可以考虑在其上部署更多应用程序。欢迎感兴趣的朋友关注~

挂载数据卷

Multipass 还提供了与 Docker 相同的挂载数据卷的功能,并且可以与外部主机文件同步。

接下来,我在用户目录下创建一个hello目录

挂载完成后,我们返回实例vm01,可以看到多出一个hello文件夹,说明挂载成功~

挂载成功

因此,在vm01的hello文件夹中创建的文件会同步显示在宿主机的hello文件夹中。

卸载数据卷

如果以后不需要挂载,可以使用unmount命令卸载

传输文件

除了使用前面提到的挂载方式实现文件交互外,还可以使用transfer命令将宿主机的文件发送到虚拟机。

例如,发送 hello.txt 到

删除和释放实例

使用以下命令启动、停止、删除和释放实例

容器配置自动化

为了在节省部署时间的同时保持开发环境和在线环境的一致性,multipass为我们提供了–cloud-init选项,用于容器启动的初始配置:

上面的 config.yaml 是容器的初始配置文件。比如我们想在容器初始化的时候自动下载安装Node.js。内容如下:

您可以指定在容器首次启动时运行的命令

任何用户定义的 cloud-init 配置文件都必须以 #cloud-config 开头,这是 cloud-init 识别它的方式。

yaml配置文件可以参考以下文章

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论