做为程序员群体,我们经常需要使用Linux。而且可能会使用各种不同版本的Linux。可能是Ubuntu,也可能是CentOS或其它。
虽然有很多程序员会使用Linux做桌面操作系统,但大多数仍然会使用Windows或MacOS。在Windows及MacOS上,我们就需要方便快速的工具来虚拟Linux,以方便我们测试等使用。
很多程序员可能会考虑或使用开源的VirtualBox
或商业的VMware
,但这些GUI式的虚拟工具,虚拟一个Linux的过程非常麻烦。
Lima不仅是一个开源的免费的工具,相比较Multipass而言,它还有很多其它优势,比如不只支持Ubuntu, 而且可以基于它轻易的在MacOS取代Docker Desktop For Mac这个笨重,难用的软件。
Lima的官网是:https://lima-vm.io/docs/
Lima
Lima是一款MacOS上的Linux虚拟软件。
通过Lima可以仅通过一个命令就方便的创建并使用一个虚拟的无GUI的Linux。Lima则基本支持所有主流服务Linux系统,包括AlmaLinux, Alpine, Arch Linux, Debian, Fedora, openSUSE, Oracle Linux, Rocky, Ubuntu等。
基本上你会用的Linux,你都能用Lima虚拟出来。而虚拟这些Linux在Lima中简单到只需要一行命令。
# 创建一个debian虚拟机
limactl create --name=debian template://debian
是不是非常简单方便?
安装与使用
在MacOS上安装软件的最方便的方式就是使用Homebrew
,安装Lima也不例外。相较于其它安装起来更麻烦的方式,建议使用homebrew来安装
brew install lima
安装完成之后,检验下版本以验证是否安 .装成功
limactl --version
# 会输出limactl version 1.0.7
虚拟一个Linux
Lima是一个纯命令行工具。你需要通过命令来执行所有lima的功能。当然,对于经常使用Linux的程序员来说,这个应该是习以为常的了。
我们先来虚拟一个Linux。基于命令行来虚拟一个Linux其实有很多参数,比如你要什么Linux系统,内存多少,CPU分配多少,硬盘多少等。如果每次创建Linux虚拟机都要一堆参数,这会显著的提高难度。
好在Lima是通过templates来解决这个问题,lima本身内置了很多模板,你也可以定制你自己的模板。然后通过模板,仅一条简单的命令,就可以创建一个虚拟机
# 创建一个debian虚拟机,使用debian 12模板
limactl create --name=debian template://debian-12
那怎么知道它有哪些模板呢。
有两个方式.
其一是到官网的文档中了解,地址是:https://lima-vm.io/docs/templates/。这个页面列出了lima所有内置的模板。
另一个是访问本地目录。输入limactl help
命令后, 帮助指引中会告诉你模板的本地目录
See also template YAMLs: /opt/homebrew/share/lima/templates
这样你就可以到本地目录中,查找这些模板文件。
常用操作
简单列举一些limactl
你会用到的常用场景及命令
创建虚拟机
可以通过模板创建,也可以自定义模板文件,创建时也可以指定诸如内存,硬盘,CPU数等参数
# 使用默认模板创建虚拟机,默认模板是ubuntu
limactl create --name=test
# 指定模板创建虚拟机,模板
limactl create --name=test template://debian
# 指定附加参数创建虚拟机
limactl create --cpus=2 --memory=2 --name=test template://debian-12
列出所有虚拟机
列出你本机安装的所有虚拟机及信息
limactl list
启动及ssh
启动一个虚拟机
# start后加上要启动的虚拟机名称
limactl start test
Ssh进入虚拟机
limactl shell test
进入后,默认是MacOS当前用户名同名用户,你需要使用sudo
来执行一些root权限的工作。sudo不需要任何密码。
停止,删除及保护虚拟机
同样,虚拟机不使用时,你可以停止它。如果整个虚拟机都不需要了,删除它。为了避免误删虚拟机,你可以保护一个虚拟机
# 停止虚拟机
limactl stop test
# 删除虚拟机
limactl delete test
# 保护一个虚拟机,防止误删除
limactl protect test
# 取消对虚拟机的保护,允许删除
limactl unprotect test
ssh 连接
启动虚拟机之后,编辑 ssh配置文件:
vim /etc/ssh/sshd_config
定义好端口,修改下面两处参数:
PermitRootLogin yes
PasswordAuthentication yes
重启 ssh 服务:service sshd restart
然后用 ssh工具连接即可,IP 为 127.0.0.1,端口为上述定义的端口,密码可以在连接之前终端时定义好,设置了密码更安全。
如果你还在使用类似VirtualBox或Multipass这一类的工具,Lima是你可以考虑的绝佳的更好的替代品。