当谈到在macOS上运行容器时,Docker长期以来一直是首选。但是,必须解决使用适用于macOS的Docker Desktop时出现的一些限制,特别是对于大中型公司,最大的问题是需要购买许可证。另外,macOS 版Docker Desktop的性能问题也是让广大用户诟病。本文,我们介绍一个Docker Desktop的免费开源的替代工具Colima。 在macOS上体验容器管理的新时代,没有许可障碍,并针对各种Mac设备上的卓越性能进行了优化。
概述
Colima是一个免费的开源容器运行时,它使用QEMU在虚拟机中运行Docker容器。它是由Lima Project创建的,Lima项目是一群致力于创建工具以方便在 macOS上运行容器化应用程序的开发人员。
Lima项目由一群MacBook开发人员用户于2019年启动,出于对macOS缺乏良好的容器运行时和工具的不满而DIY。当时,在 macOS 上运行Docker容器的唯一选择是适用于macOS的Docker Desktop,它需要大中型公司的许可证。Lima项目着手为macOS创建 Docker Desktop的免费开源替代方案,以提供更好的性能和更多功能。
Colima的第一个版本于2020年发布。一经推出,Colima 很快受到广大macOSer苦恼于Docker Desktop的用户所欢迎。
Colima仍在开发中,最新版本为v0.55。Colima已经成为在macOS上运行容器化应用程序的流行选择。它是一个功能强大且多功能的容器运行时,与其他选项相比具有许多优势,例如更好的性能和对Kubernetes的支持。
优势
免费和开源:一个免费和开源项目,这意味着它可以免费使用和修改。
高性能:C使用QEMU在虚拟机中运行Docker容器,可以提供比其他容器运行时更好的性能。
支持多容器运行时:支持Docker和Containerd作为运行时。
支持Kubernetes: Colima支持Kubernetes,这是管理容器化应用程序的强大工具。
易于使用:简单的CLI界面,易于安装和使用。
兼容所有版本macOS: Colima与所有版本的macOS兼容。M1 Mac架构支持。
架构
Colima由以下组件组成:
Colima :主要的Colima组件负责启动和管理QEMU虚拟机。
Lima:Lima是一个允许您从命令行管理 QEMU 虚拟机的工具。
Docker:Colima使用Docker来运行容器化应用程序。
Kubernetes:Colima 支持Kubernetes,因此可以使用它来运行由Kubernetes管理的容器化应用程序。
安装和使用
要使用Colima,首先需要安装它。可以通过Homebrew、MacPorts和Nix等软件包管理器安装。
# Homebrew
brew install colima
# MacPorts
sudo port install colima
# Nix
nix-env -iA nixpkgs.colima
安装好Colima后,执行
colima version
在启动colima之前,先检查docker是否正在运行。
docker ps
从上面来看Docker并没有在后台运行。为了安全起见关闭ddev:
ddev poweroff
启动Colima,可通过运行以下命令来启动它:
colima start
这将启动一个QEMU虚拟机并在其中运行Docker容器。 然后,可以使用正常Docker命令行工具来管理容器。
docker ps
运行时
初次启动时,Colima使用用户指定的运行时(默认为 Docker)启动。
Docker运行时需要Docker客户端。可以用brew安装
brew install docker
colima start后,就无需额外设置使用docker客户端。
如果使用Containerd运行时,可以通过
colima start --runtime containerd
启动并设置Containerd。
可以使用colima nerdctl与Containerd 交互。
建议运行colima nerdctl install安装 nerdctl $PATH中的别名脚本。
检查colima的状态
colima status
列出所有正在运行的上下文
colima list
删除上下文
colima delete
和Kubernetes交互
对于Docker运行时,Kubernetes 可以访问使用Docker构建或拉取的映像。
对于 Containerd运行时,可以访问命名空间k8s.io
Minikube + Colima
我们可以将minikube的驱动程序设置为使用docker,而docker通过使用colima 来设置容器。
minikube start --driver=docker
可以检查节点
kubectl get nodes
检查一下运行集群的容器
docker ps
这是运行集群的容器。
总结
Colima是Docker的一个有前途的替代品,提供更快的性能、创建Kubernetes集群的能力以及对开发环境的更好控制。对于Mac用户正在为Docker desktop授权和效率发愁的用户,可以尝试一下Colima。
参考:
Mac:运行docker遇到Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker ..._mac cannot connect to the docker daemon-CSDN博客