colima使用的详细教程

4,309 阅读2分钟

colima

GoIntegration

在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上测试