Back

macOS Lima 指南

Lima: Linux virtual machines (on macOS),是一款專門在 macOS 上模擬 Linux 的軟體,基於 QEMU 並為 x86_64 及 ARM 都提供了良好的使用體驗。

用法

安裝

Lima 的安裝可以直接透過 Homebrew

1
$ brew install lima

並且利用 limactl 進行安裝

1
2
3
4
5
$ limactl start
? Creating an instance "default"  [Use arrows to move, type to filter]
> Proceed with the default configuration
  Open an editor to override the configuration
  Exit

第一次使用的話可以選擇 Proceed with the default configuration,它預設會啟動一個 Ubuntu 21.04 的虛擬機,並且分配 4 個 CPU 與 4 GB 記憶體

個人會使用 Ubuntu 21.10 的 image 並搭配 6 顆 CPU 與 16 GB 記憶體,並且將專案資料夾掛載為可寫(這樣在虛擬機中執行 npm installcomposer install 才能寫入)

使用

在 Lima 所使用的 image 中,大部份都已經有 containerd,再加上自動安裝的 nerdctl 就可以產生與 Docker CLI 類似的使用體驗

$ lima nerdctl images
REPOSITORY    TAG    IMAGE ID    CREATED    SIZE
$ lima nerdctl pull hello-world
docker.io/library/hello-world:latest:                                             resolved       |++++++++++++++++++++++++++++++++++++++|
index-sha256:61bd3cb6014296e214ff4c6407a5a7e7092dfa8eefdbbec539e133e97f63e09f:    done           |++++++++++++++++++++++++++++++++++++++|
manifest-sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792: done           |++++++++++++++++++++++++++++++++++++++|
config-sha256:d1165f2212346b2bab48cb01c1e39ee8ad1be46b87873d9ca7a4e434980a7726:   done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:b8dfde127a2919ff59ad3fd4a0776de178a555a76fff77a506e128aea3ed41e3:    done           |++++++++++++++++++++++++++++++++++++++|
elapsed: 5.2 s                                                                    total:  6.9 Ki (1.3 KiB/s)
$ lima nerdctl run --rm -it hello-world

另一方面,nerdctl 也整合了類似於 docker-compose 的功能:

1
2
3
4
5
6
services:
  web:
    image: 'nginx:alpine'
    ports:
    - 8080:80

$ lima nerdctl compose up
$ curl localhost:8080

註:Host Port 應該大於 1024,這是因為 lima 無法以 root 身份執行,對於低於 1024 的 Port 會有所限制

額外設定

使用 lima 可以直接以 bash 開啟該虛擬機

$ lima
(lima) > sudo apt update && sudo apt upgrade # 這裡就是 Ubuntu 的指令

另外,可以選擇使用 Hinet 的 Mirror 加速更新

# /etc/apt/sources.list.d/hinet.list

deb http://mirror01.idc.hinet.net/ubuntu/ impish main 
deb-src http://mirror01.idc.hinet.net/ubuntu/ impish main 

結論

Docker 的出現對於雲端服務的革命功不可沒,同時仰賴著對眾多平台的支援能力,也讓 Docker Desktop 穩坐江山。曾經有許多軟體想與其一戰,而它們有些已化為朽骨(對,我就是說那個 rkt)。

即便 Docker Desktop 宣佈不再免費提供給大型企業,可以想見這樣的習慣仍不會太快產生變化。

就目前來看,Lima 是個極具潛力的軟體,即便對於非預設值的支援還不夠完善(例如選擇其它 Linux 發行版時常常會遇到問題),且在 M1 Mac 上也存在許多待解決的問題,不過這並不影響它有望成為 macOS Subsystem Linux 的野心。

Built with Hugo
Theme Stack designed by Jimmy