colima
在macOS(和Linux)上的容器运行时间,只需最小的设置。
特点
- 支持英特尔和M1 Macs
- 简单的CLI界面
- 支持Docker和Containerd
- 端口转发
- 卷挂载
- Kubernetes
入门指南
安装
Colima可以在Homebrew和Nix上使用。点击这里查看其他安装选项。
# Homebrew
brew install colima
# MacPorts
sudo port install colima
# Nix
nix-env -iA nixpkgs.colima
或者保持在边缘状态(只有Homebrew)。
brew install --HEAD colima
升级
如果从0.2.2或更低的版本升级,需要通过删除现有实例重新开始。
colima delete # delete existing instance
colima start
使用方法
用默认值启动Colima
colima start
对于更多的使用选项
colima --help
colima start --help
colima start --edit
运行时间
在初始启动时,Colima以用户指定的运行时间启动,默认为Docker。
Docker
Docker运行时需要Docker客户端。可以用brewbrew install docker
来安装。
在colima start
,你可以在macOS上使用docker
客户端,无需额外设置。
容器
colima start --runtime containerd
启动和设置Containerd。你可以使用 ,使用colima nerdctl
nerdctl与Containerd交互。
建议运行colima nerdctl install
,在$PATH中安装nerdctl
别名脚本。
Kubernetes
kubectl是Kubernetes的必需品。可通过brew install kubectl
安装。
要启用Kubernetes,用--with-kubernetes
标志启动Colima。
colima start --with-kubernetes
与镜像注册中心互动
对于Docker运行时,Kubernetes可以访问用Docker构建或拉来的镜像。
对于Containerd运行时,Kubernetes可以访问在k8s.io
名称空间中构建或拉取的镜像。
定制虚拟机
Colima创建的默认虚拟机有2个CPU、2GiB内存和60GiB存储。
可以通过将--cpu
、--memory
、--disk
传递给colima start
来定制虚拟机。如果已经创建了虚拟机,请停止虚拟机,并在启动时应用标志。
注意,只有cpu和内存可以在任何时候改变。磁盘大小在虚拟机创建后不能改变。
定制示例
-
创建具有 1CPU、2GiB 内存和 10GiB 存储的 VM。
colima start --cpu 1 --memory 2 --disk 10
-
修改现有的 VM 为 4CPU 和 8GiB 内存。
colima stop colima start --cpu 4 --memory 8
项目目标
以最小的设置在macOS上提供容器运行时间。
项目状态
⚠️该项目仍处于活跃的早期开发阶段,更新可能会引入一些突破性的变化。
这个名字是什么意思?
Colima在利马的意思是容器。
因为Lima是Mac上的Linux。通过反证法,Colima也可以指Mac上的Linux的容器。
常见问题
它能与Docker for Mac一起运行吗?
不,除了在使用Containerd运行时启动时。Colima假设是默认的Docker上下文,并且会与Docker for Mac冲突。你应该运行其中一个,而不是两个。
是的,从v0.3.0版本开始,Colima利用Docker上下文,因此可以和Docker for Mac一起运行。
docker context list
Colima可以列出所有的上下文, ,可以用来改变活动的上下文。docker context use
如何定制Docker配置,例如添加不安全的注册表?
第一次启动时,Colima会生成Docker daemon.json文件,地址是$HOME/.colima/docker/daemon.json
。
只需相应地修改daemon.json文件并重新启动Colima。
它与minikube、Kind、K3d相比如何?
对于Kubernetes
是的,你可以用minikube(带Docker驱动)、Kind或K3d创建一个Kubernetes集群,而不是在Colima中启用Kubernetes。如果你需要多个集群,或者不需要Docker和Kubernetes共享相同的镜像和运行时间,这些是更好的选择。
对于Docker
带有Docker运行时的Minikube可以用minikube docker-env
,暴露集群的Docker,但也有一些注意事项:
-
Kubernetes不是可选的,即使你只需要Docker。
-
minikube为macOS提供的所有免费驱动程序在性能、端口转发或卷方面都有不足之处。虽然端口转发和体积对Kubernetes来说不是问题,但对于只使用Docker的人来说,它们可能是一个破坏性的因素。
是否支持M1 Mac?
Colima支持并能在M1 Mac上工作,但由于作者目前没有M1设备,所以没有进行严格的测试。希望能得到反馈。
求助
- 自酿配方
- 在M1 Mac上测试