前言
Mac上使用Docker的几种方案:
VM
通过Parallels Desktop、VMware之类的虚拟机,在其中安装Docker。
Docker Desktop
官方出品,带有GUI进行管理。
资源占用比较大,UI卡顿,有时还会卡死。
Colima
Colima是专门为了解决Mac平台容器化工具链儿创建的项目,底层基于Lima。
Lima
Lima目前是基于QEMU的自动化VM方案,由于其出色设计,借助Cloud Init可以在多阶段帮助我们完成hook。不仅可以帮我们完成Docker虚拟机创建,可以创建任何我们想要的东西,可定制化程度比较高。
目前来讲,Colima是最优的选择,借助Lima,自动帮我们创建虚拟机,配置目录映射。相对来说使用比较简单。
次优解是Lima,需要自行编写描述文件,创建虚拟机,通过Cloud Init完成Docker安装。相对来说比较硬核一些,如果只是为了使用Docker,没比付出如此高的学习成本。
Colima
Colima旨在以最小化设置来在macOS上配置容器运行时环境,支持M1。
Colima的名字取自Container on Lima。Colima实际上是通过Lima启动了名为colima的虚拟机,使用虚拟机中的containerd作为容器运行时。
Colima安装
macOS安装非常简单,使用brew即可。同时docker-cli也一并安装。
brew install colima docker docker-compose
Colima启动
首次启动Colima,需要下载虚拟机所需要的镜像,所需时间比较长。
colima start
INFO[0000] starting colima
INFO[0000] runtime: docker
INFO[0001] starting ... context=vm
INFO[0025] provisioning ... context=docker
INFO[0027] starting ... context=docker
INFO[0030] done
此时已经可以正常使用docker命令了。
Colima功能
查看Lima虚拟机的状态。Colima默认创建的虚拟机2核CPU,2GiB内存,60Gib存储空间。
➜ ~ colima list
PROFILE STATUS ARCH CPUS MEMORY DISK RUNTIME ADDRESS
default Running x86_64 2 2GiB 60GiB docker
停止Colima。
colima stop
通过brew控制Colima服务。
brew services start colima
brew services stop colima
通过启动参数修改虚拟机资源。
colima start --cpu 4 --memory 8 --disk 100
修改容器运行时,同时创建一个k3s运行时。
colima start --runtime containerd --kubernetes
修改虚拟机架构,如果架构和本机不一致,会使用QEMU仿真,有很大的性能损失。
colima start --arch aarch64
更多的参数通过colima --help
查看,就不一一罗列了。
参考文章: