Mac M1下使用Colima替代docker desktop搭建云原生环境

news2024/11/17 11:27:45

文章目录

    • 为什么不使用docker desktop
    • 1.docker desktop卸载
    • 2.docker、docker compose安装
    • 3.colima安装
      • 3.1获取镜像地址
      • 3.2将下载好的iso文件放到colima指定路径
      • 3.3重新执行colima start
    • 4.minikuke+kubernetes安装
    • 5.关闭minikube

Mac M1下使用Colima替代docker desktop搭建云原生环境分为几个过程
1.docker desktop卸载
2.docker、docker compose安装
3.colima安装
4.minikuke+kubernetes安装
注:以上应用的安装均使用homebrew,若下载过程较慢,建议 换源

为什么不使用docker desktop

docker运行需要依赖虚拟机,而docker desktop提供了这个虚拟机条件,但是mac上使用docker desktop有一些限制,特别是对于大中型公司,最大的问题是需要购买许可证。另外,macOS 版Docker Desktop的性能问题也是让广大用户诟病。所以我们只需要找到虚拟机的替代品就可以摆脱这些限制,像Hyperkit、VirtualBox这些并不适用于M1芯片的mac。经过一系列的调研后终于找到了比较完美的虚拟机替代品,也就是colima,colima 实际上是通过 Lima 启动了名为 colima 的虚拟机.

1.docker desktop卸载

mac上卸载软件不必赘述

2.docker、docker compose安装

brew install docker
brew install docker-compose

3.colima安装

brew install colima

重点来了,下载没什么问题,但是第一次使用colima start运行的时候问题就大了,他会先去下载虚拟机镜像,这个镜像需要魔法,不然速度感人,且不能断点继续下载。
在这里插入图片描述
我们可以将镜像在外面下载好放到Colima指定的读取路径后重新start即可。

3.1获取镜像地址

在第一次运行Colima的时候会在~/.lima/colima/lima.yaml下生成yaml文件,我们查看这个yaml文件可以获取镜像地址
在这里插入图片描述
将地址拷贝出来,使用魔法下载。

3.2将下载好的iso文件放到colima指定路径

将下载好的iso文件放到~/.lima/colima/basedisk(注意,这里的basedisk就是镜像文件,不是文件夹,lima启动的时候会自动检测镜像格式)

3.3重新执行colima start

注意了,直接使用Colima start启动会有mount目录写权限问题,所以要在启动的时候指定mount=9p
最终colima的启动命令为:

colima start --cpu 2 --memory 2 --disk 10 --mount-type 9p

Colima启动成功后就可以使用docker了,使用colima status查看启动状态
在这里插入图片描述
并且这个时候使用docker ps也没有问题了。

4.minikuke+kubernetes安装

启动minikube需要kicbase支持,且这里要使用v0.0.32版本,先下载kicbase镜像

docker pull kicbase/stable:v0.0.32

最后启动minikube

minikube start --vm-driver=docker --base-image="kicbase/stable:v0.0.32" --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers' --kubernetes-version=v1.23.8

在这里插入图片描述

查看minikube状态,并打开k8s面板

minikube status
minikube dashboard

在这里插入图片描述
在这里插入图片描述

5.关闭minikube

这里需要注意的是, 不能通过minikube stop关闭集群, 这样会丢失之前创建的环境, 取而代之的是minikube pause以及minikube unpause
关闭docker 和colima

minikube pause
docker stop minikube
colima stop

在这里插入图片描述
这样的话, 我们在每次使用docker/minikube的时候, 就需要先开启colima, 这也被称为docker的守护进程(daemon), 然后再进入minikube, 启动节点.
之后启动minikube的顺序为

colima start
docker run minikube
minikube start
minikube dashboard

参考文章
1.【云原生】M1 Mac配置docker kubernetes(k8s) colima完全指南(不使用docker desktop)
2.记mac下尝鲜colima的坎坷经历

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据分享】我国专精特新“小巨人”企业数据(excel格式\shp格式)

企业是经济活动的参与主体。一个城市的企业数量决定了这个城市的经济发展水平!比如一个城市的金融企业较多,那这个城市的金融产业肯定比较发达;一个城市的制造业企业较多,那这个城市的制造业肯定比较发达。之前我们分享过2023年高…

使用WPF模仿Windows记事本界面

本次仅模仿Windows记事本的模样&#xff0c;并未实现其功能。 所有代码如下&#xff1a; <Window x:Class"控件的基础使用.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/…

高校教务系统登录页面JS分析——广东海洋大学

高校教务系统密码加密逻辑及JS逆向 本文将介绍高校教务系统的密码加密逻辑以及使用JavaScript进行逆向分析的过程。通过本文&#xff0c;你将了解到密码加密的基本概念、常用加密算法以及如何通过逆向分析来破解密码。 本文仅供交流学习&#xff0c;勿用于非法用途。 一、密码加…

01、字符传实现为什么是SDS而不是char*?

问题&#xff1a; 1. sds 是什么 &#xff1f; 2. sds 相对于char * 有什么好处 &#xff1f;解决了哪些疑难杂症&#xff1f; 3. sds 有什么不足&#xff1f;可以优化的点&#xff1f; 思考下&#xff1a; 平常工作开发中&#xff0c;我们记录一条用户信息、订单信息&…

SAP-QM-检验批和物料凭证

业务场景&#xff1a; 在做数字化项目中可能会导出一些数据&#xff0c;例如&#xff0c;通过检验批要找到物料凭证&#xff0c;因为启用了质检模块&#xff0c;收货操作是103105&#xff0c;当做103收货时产生检验批1000*************,然后通过QM系统的QA11决策之后收货&…

代码随想录Day25 回溯算法 LeetCode T51 N皇后问题

目录 前言 LeetCode T51 N皇后问题 题目思路: 回溯三部曲: 2.终止条件 3.一次搜索逻辑 4.isValid合法性判断 5.Array2List 题目代码: 总结: 前言 又来到了我们的周末,今天我们挑战一道困难题:N皇后问题,相信大家都玩过一个经典的小游戏:8皇后 游戏规则是:在一个n*n的…

Python学习第2天-安装pycharm

文章目录 前言一、下载二、安装1.选择安装目录2.安装配置 总结 前言 好用的工具可以极大地提高生产力&#xff0c;开发Python推荐使用jetbrains全家桶的pycharm。 一、下载 通过官网下载安装包。 二、安装 1.选择安装目录 2.安装配置 一路Next&#xff0c;安装完成 总结 …

ANR系列之八:疑难ANR问题处理记录

前言&#xff1a; 本文仅是记录作者自身处理过的ANR问题&#xff0c;以及帮助他人解决过的ANR问题。本文中所介绍的ANR处理记录仅供参考&#xff0c;并不适用所有场景。并且最终结论和分析并不一定就是绝对正确的。 案例1.页面切换时前台应用焦点未获得 案例编号&#xff1a;…

从零开始学CAPL

从零开始学CAPL CAPL和C语言的关系和介绍C语言的基础语法常量变量标识符关键字数据类型整数数据字符数据实型数据(浮点数据)运算符以及优先级类型转换printf函数 选择程序结构设计if语句switch语句 循环结构程序设计while语句do……while语句for语句break和continue 数组函数 C…

VueComponent的原型对象

一、prototype 每一个构造函数身上又有一个prototype指向其原型对象。 如果我们在控制台输入如下代码&#xff0c;就能看到Vue构造函数的信息&#xff0c;在他身上可以找到prototype属性&#xff0c;指向的是Vue原型对象&#xff1a; 二、__proto__ 通过构造函数创建的实例对…

Mybatis拦截器

MyBatis插件介绍 MyBatis提供了一种插件(plugin)的功能&#xff0c;虽然叫做插件&#xff0c;但其实这是拦截器功能。 MyBatis允许使用者在映射语句执行过程中的某一些指定的节点进行拦截调用&#xff0c;通过织入拦截器&#xff0c;在不同节点修改一些执行过程中的关键属性&…

apache搭建静态网站,moongoose搭建网站后台,出现的跨域问题解决

文章目录 1&#xff0c;问题描述1.1&#xff0c;当网页和后台是不同服务时会产生跨域问题1.2&#xff0c;跨域问题 2&#xff0c;nginx端口转发解决跨域问题2.1&#xff0c;下载并安装nginx2.1.1&#xff0c;解压后如下所示2.1.2&#xff0c;进入解压目录后&#xff0c;执行配置…

SAP-QM-动态检验规则

Dynamic Modification Rule &#xff08;动态修改规则&#xff09; 1、决定样本大小的方式有3种&#xff1a; 手动输入比例大小采样过程 物料主数据质量视图 2、采样过程的创建方式有2种 跟批量大小有关系&#xff1a;百分比/AQL跟批量大小没有关系&#xff1a;固定值 而当…

Jetpack:014-Jetpack中的小红点

文章目录 1. 概念介绍2. 使用方法2.1 Badge2.2 BadgedBox 3. 示例代码4. 内容总结 我们在上一章回中介绍了Jetpack库中底部栏相关的内容&#xff0c;本章回中主要介绍 小红点。闲话休提&#xff0c;让我们一起Talk Android Jetpack吧&#xff01; 1. 概念介绍 我们在本章回中…

Android C/C++ native编程NDK开发中logcat的使用

Android C/C native编程NDK开发中logcat的使用 前言具体用法 前言 在NDK开发过程中&#xff0c;C/C层&#xff0c;需要对代码进行一些调试&#xff0c;日志打印是我们解决异常或崩溃的重要手段&#xff0c;这里我就简单介绍下日志打印三步走。 首先我们先看下官方文档关于日志…

渗透测试--JWT攻防(一)

JWT简介 JWT代表JSON Web Token&#xff0c;它是一种用于安全地在不同实体之间传递信息的开放标准&#xff08;RFC 7519&#xff09;。JWT通常用于身份验证和授权领域&#xff0c;以及在网络应用程序和服务之间传递声明&#xff08;claims&#xff09;信息。 JWT的常见用途包括…

S7-1200通过CM CANopen模块与KINCO伺服连接

CM CANopen模块简介 CM CANopen模块&#xff08;Profinet转CANopen&#xff09;来自瑞典HMS &#xff0c;由西 门子授权HMS公司开发&#xff0c;与S7-1200完美兼容。 可做为S7-1200与CANopen/CAN设备之间的桥梁&#xff0c;能够联接任意 CANopen或CAN 2.0A设备到SIMATIC S7-1…

聊聊分布式架构10——Zookeeper入门详解

目录 01ZooKeeper的ZAB协议 ZAB协议概念 ZAB协议基本模式 消息广播 崩溃恢复 选举出新的Leader服务器 数据同步 02Zookeeper的核心 ZooKeeper 的核心特点 ZooKeeper 的核心组件 选举算法概述 服务器启动时的Leader选举 服务器运行期间的Leader选举 03ZooKeeper的…

PT100温度传感器

热电阻是中低温区&#xfe61;常用的一种温度检测器。它的主要特点是测量精度高&#xff0c;性能稳定。其中铂热电阻的测量精确度是&#xfe61;高的&#xff0c;它不仅广泛应用于工业测温&#xff0c;而且被制成标准的基准仪。金属热电阻的感温元件有石英套管十字骨架结构&…

智能洗地机哪个牌子好用?智能洗地机品牌排行榜

为了偷懒人类发明了扫把、拖把等手动清洁工具&#xff0c;随着技术的进步出现了吸尘器、扫地机器人等等智能产品&#xff0c;近几年洗地机又以快速、直接、高效对市场进行了“颠覆”&#xff0c;如何快速在洗地机市场中挑选到适合自己的智能洗地机呢&#xff0c;我们一起来看看…