前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >善用开源,MacOS下绝佳的Linux虚拟工具 - Lima

善用开源,MacOS下绝佳的Linux虚拟工具 - Lima

作者头像
御剑
发布2024-06-05 18:29:51
1600
发布2024-06-05 18:29:51
举报
文章被收录于专栏:微言码道微言码道

做为程序员群体,我们经常需要使用Linux。而且可能会使用各种不同版本的Linux。可能是Ubuntu,也可能是CentOS或其它。

虽然有很多程序员会使用Linux做桌面操作系统,但大多数仍然会使用Windows或MacOS。在Windows及MacOS上,我们就需要方便快速的工具来虚拟Linux,以方便我们测试等使用。

很多程序员可能会考虑或使用开源的VirtualBox或商业的VMware,但这些GUI式的虚拟工具,虚拟一个Linux的过程非常麻烦。我曾经推荐过Multipass这款纯命令行式的虚拟工具,但它有只支持Ubuntu。(因为是Ubuntu开发的)

我已经早就放弃使用Multipass,而使用更方便的Lima。

Lima不仅是一个开源的免费的工具,相比较Multipass而言,它还有很多其它优势,比如不只支持Ubuntu, 而且可以基于它轻易的在MacOS取代Docker Desktop For Mac这个笨重,难用的软件。

Lima的官网是:https://lima-vm.io/docs/

Lima

Lima是一款MacOS上的Linux虚拟软件。和我以前介绍的Ubuntu的Multipass这个工具非常类似。

通过Lima可以仅通过一个命令就方便的创建并使用一个虚拟的无GUI的Linux。在Lima之前,我一直是通过ubuntu的multipass来做这个。但multipass只支持ubuntu,而Lima则基本支持所有主流服务Linux系统,包括AlmaLinux, Alpine, Arch Linux, Debian, Fedora, openSUSE, Oracle Linux, Rocky, Ubuntu等。

看到没,基本上你会用的Linux,你都能用Lima虚拟出来。而虚拟这些Linux在Lima中简单到只需要一行命令。

代码语言:javascript
复制
# 创建一个debian虚拟机
limactl create --name=debian template://debian

是不是非常简单方便?

安装与使用

  1. 安装

在MacOS上安装软件的最方便的方式就是使用Homebrew,安装Lima也不例外。相较于其它安装起来更麻烦的方式,建议使用homebrew来安装

代码语言:javascript
复制
brew install lima

安装完成之后,检验下版本以验证是否安 .装成功

代码语言:javascript
复制
limactl --version
# 会输出limactl version 0.22.0

  1. 虚拟一个Linux

Lima是一个纯命令行工具。你需要通过命令来执行所有lima的功能。当然,对于经常使用Linux的程序员来说,这个应该是习以为常的了。

我们先来虚拟一个Linux。基于命令行来虚拟一个Linux其实有很多参数,比如你要什么Linux系统,内存多少,CPU分配多少,硬盘多少等。如果每次创建Linux虚拟机都要一堆参数,这会显著的提高难度。

好在Lima是通过templates来解决这个问题,lima本身内置了很多模板,你也可以定制你自己的模板。然后通过模板,仅一条简单的命令,就可以创建一个虚拟机

代码语言:javascript
复制
# 创建一个ubuntu虚拟机,使用ubuntu模板
limactl create --name=debian template://ubuntu

那怎么知道它有哪些模板呢。

有两个方式.

其一是到官网的文档中了解,地址是:https://lima-vm.io/docs/templates/。这个页面列出了lima所有内置的模板。

另一个是访问本地目录。输入limactl help命令后, 帮助指引中会告诉你模板的本地目录

代码语言:javascript
复制
  See also template YAMLs: /opt/homebrew/share/lima/templates

这样你就可以到本地目录中,查找这些模板文件。

常用操作

简单列举一些limactl你会用到的常用场景及命令

  1. 创建虚拟机

可以通过模板创建,也可以自定义模板文件,创建时也可以指定诸如内存,硬盘,CPU数等参数

代码语言:javascript
复制
# 使用默认模板创建虚拟机,默认模板是ubuntu
limactl create --name=test
# 指定模板创建虚拟机,模板
limactl create --name=test template://debian
# 指定附加参数创建虚拟机
limactl create --cpus=2 --memory=2 --name=test template://debian

  1. 列出所有虚拟机

列出你本机安装的所有虚拟机及信息

代码语言:javascript
复制
limactl list

  1. 启动及ssh

启动一个虚拟机

代码语言:javascript
复制
# start后加上要启动的虚拟机名称
limactl start test

Ssh进入虚拟机

代码语言:javascript
复制
limactl shell test

进入后,默认是MacOS当前用户名同名用户,你需要使用sudo来执行一些root权限的工作。sudo不需要任何密码。

  1. 停止,删除及保护虚拟机

同样,虚拟机不使用时,你可以停止它。如果整个虚拟机都不需要了,删除它。为了避免误删虚拟机,你可以保护一个虚拟机

代码语言:javascript
复制
# 停止虚拟机
limactl stop test
# 删除虚拟机
limactl delete test
# 保护一个虚拟机,防止误删除
limactl protect test
# 取消对虚拟机的保护,允许删除
limactl unprotect test

  1. scp复制

操作Linux,大多会涉及到host与虚拟机文件互传。对于真正的远程Linux,我们都是用scp命令。

但对于lima来说,我们使用limactl cp来实现

代码语言:javascript
复制
# 将本机test.png复制到test虚拟机的/tmp目录
limactl cp ~/Downloads/test.png test:/tmp

# 从test虚拟机复制到本机
limactl cp test:/tmp/test.png ~/Downloads

最后

相比较而言,Lima与Multipass属于同一类工具。Lima的优势非常明显:

  • 它是开源的工具,而Multipass是并不是
  • Lima支持几乎所有Linux,而Multipass只支持Ubuntu
  • Lima不仅能做Linux虚拟机,还能承担docker desktop的功能,同样也支持k8s等

如果你还在使用类似VirtualBox或Multipass这一类的工具,Lima是你可以考虑的绝佳的更好的替代品。

Lima不仅让我删除了Multipass,还让我删除了MacOS上笨重,难用的Docker Desktop For Mac件。下一篇我再详细介绍下基于Lima替换掉Docker Desktop For Mac。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微言码道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Lima
  • 安装与使用
  • 常用操作
  • 最后
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档