mac 上 Docker Desktop的免费开源的替代工具Colima

当谈到在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博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/770213.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

单调栈(左小大,右小大)

①寻找每个数左边第一个比它小的数 给定一个长度为 N 的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出 −1。 输入样例: 3 4 2 7 5 输出样例: -1 3 -1 2 2 从左到右遍历,用单调递增(栈底到栈顶…

c->c++(二):class

本文主要探讨C类的相关知识。 构造和析构函数 构造函数(可多个):对象产生时调用初始化class属性、分配class内部需要的动态内存 析构函数(一个):对对象消亡时调用回收分配动态内存 C提供默认构造和析构,…

行人检测技术:思通数科大模型在自动驾驶安全中的应用

在自动驾驶技术飞速发展的今天,行人检测已成为确保道路交通安全的关键技术之一。本文将探讨如何结合思通数科大模型和计算机视觉技术,实现在城市交通环境中对行人的高效检测,为自动驾驶车辆提供必要的行人安全保障。 引言 行人检测技术是利…

Dubbo内部通信流程

我当时在学习的过程中搭建过demo,具体流程就是,我先定义了一个api接口模块,还定义一个服务提供者模块,然后服务提供方实现该接口,定义该方法具体的实现impl类,服务提供方启动时,将要暴露的服务和…

【架构-20】死锁

什么是死锁? 死锁(Deadlock)是指两个或多个线程/进程在执行过程中,由于资源的互相占用和等待,而陷入一种互相等待的僵局,无法继续往下执行的情况。 产生死锁的四个必要条件: (1)互斥条件(Mutual Exclusion):至少有一个资源是非共享…

跨阻放大器

#创作灵感# 最近涉及到微电流的监测项目,而里面的核心就是跨阻放大器,所以这里做一个简单的介绍,后续等项目完成了,再做一个实例的介绍。 #正文# 跨阻放大器(Transimpedance Amplifier, TIA)是一种将输入电…

Windows编程之多线程事件对象(Event Object)用法详解

目录 一、前言 二、基础用法 三、API详解 1.创建事件对象 2控制事件状态 3.等待事件对象: 四、实战案例 1.案例描述 2.代码设计 3.总设计代码 4.运行结果 一、前言 事件对象(Event Object)是我们在大型项目中,进行多线…

股价持续低迷,业绩颓势不减,冀光恒难救平安银行?

文|新熔财经 作者|宏一 周一一上班,就听到旁边的同事感慨今年股市行情很不错,尤其是银行股,上半年累计上涨了17.02%,是涨幅最大的板块。 听到这里,我美滋滋地打开自己的账户,结…

如何对低代码平台进行分类?

现在市面上的低代码平台就像雨后春笋一样冒出来,而且源源不绝,但总结下来,大致的也就以下三类。 一、 aPaaS多引擎类(有很多成熟引擎、做好东西要一起用) 这类产品包括:织信Informat(国内&…

照明物联网:基于网关的智能照明云监控系统解决方案

智能照明系统就是利用物联网技术,将同一空间的照明、空调、新风、排风等系统共同接入物联网平台,实现了“设备互联、数据互通”的智慧物联能力。照明数据、环境监测数据通过网关上传云端,在云端进行统计分析并将结果通过各种终端共享&#xf…

MySQL—常用的数据类型

数据类型 整型 1.创建一个含有无符号/有符号整型的字段的表 CREATE TABLE L1(id tinyint unsigned #无符号 ) CREATE TABLE L2(id tinyint #默认为有符号 ) 数值型(bit) 2.数值型(bit)的使用 小数 3.数值型(小数)的基本使用 字符串 4.字符串的基本使用 #演示字符串类型…

REGX52.H报错

keil cannot open source input file "REGX52.H": No such file or directory 选择下面这个目录 Keil\C51\INC\Atmel

AI绘画Stable Diffusion 新手入门教程:万字长文解析Lora模型的使用,快速上手Lora模型!

大家好,我是设计师阿威 今天给大家讲解一下AI绘画Stable Diffusion 中的一个重要模型—Lora模型,如果还有小伙伴没有SD安装包的,可以看我往期入门教程2024最新超强AI绘画Stable Diffusion整合包安装教程,零基础入门必备&#xff…

【软件测试】Selenium自动化测试框架 | 相关介绍 | Selenium + Java环境搭建 | 常用API的使用

文章目录 自动化测试一、selenium1.相关介绍1.Selenium IDE2.Webdriverwebdriver的工作原理: 3.selenium Grid 2.Selenium Java环境搭建3.常用API的使用1.定位元素2.操作测试对象3.添加等待4.打印信息5.浏览器的操作6.键盘事件7.鼠标事件8.定位一组元素9.多层框架定…

手把手家教你进行ChatGPT私有化部署

背景 随着AI技术的不断成熟,加上ChatGPT如火如荼的发布新版本迭代更新,人工智能的热度也升温到史无前例的高度。 我们有理由相信,现在身边还不愿主动去接触这项技术,深入了解的小伙伴,在不久的将来,一定会…

网络攻防——kali操作系统基本使用

1.阅读前的声明 本文章中生成的木马带有一定的攻击性,使用时请遵守网络安全相关的法律法规(恶意攻击操作系统属于违法行为)。 2.环境安装 生成木马主要需要如下工具:kali操作系统,VMware15(搭建kali操作…

用Python制作动态钟表:实时显示时间的动画

文章目录 引言准备工作前置条件 代码实现与解析导入必要的库初始化Pygame绘制钟表函数主循环 完整代码 引言 动态钟表是一种直观且实用的UI元素,能够实时显示当前时间。在这篇博客中,我们将使用Python创建一个动态钟表,通过利用Pygame库来实…

无线物联网题集

测试一 未来信息产业的发展在由信息网络向 全面感知和 智能应用两个方向拓展、延伸和突破。 各国均把 物联网作为未来信息化战略的重要内容,融合各种信息技术,突破互联网的限制,将物体接入信息网络。 计算机的出现,开始了第四次工业革命,开始了人机物的高度融合(&…

LVS负载均衡群集部署之——DR模式的介绍及搭建步骤

一、LVS-DR集群介绍1.1 LVS-DR 工作原理1.2 数据包流向分析1.3 LVS-DR 模式的特点1.4 LVS-DR中的ARP问题1.4.1 问题一1.4.2 问题二二、构建LVS-DR集群2.1 构建LVS-DR集群的步骤(理论)1.配置负载调度器(192.168.80.30)(…

护眼指南之适合学生写作业的台灯:看看学生护眼台灯哪个品牌好

随着人们健康意识的提高,越来越多的人开始关注眼睛的健康问题,照明技术的进步也为缓解眼疲劳提供了可能,现在的照明产品可以通过调整光线亮度、色温、频闪等参数,使光线更加柔和、均匀,减少眼睛的不适感。人们都希望通…