K8S 1.20 弃用 Docker 评估之 Docker CLI 的替代产品 nerdctl
背景
2020 年 12 月初,Kubernetes 在其最新的 Changelog 中宣布,自 Kubernetes 1.20 之后将弃用 Docker 作为容器运行时。
弃用 Docker 带来的,可能是一系列的改变,包括不限于:
- 容器镜像构建工具
- 容器 CLI
- 容器镜像仓库
- 容器运行时
专题文章《K8S 1.20 弃用 Docker 评估》会从多方面分析由此带来的变动和影响。
- 《K8S 1.20 弃用 Docker 评估之 Docker 和 OCI 镜像格式的差别》 主要介绍 镜像格式的变化
- 《K8S 1.20 弃用 Docker 评估之 Docker CLI 的替代产品》 主要介绍 Docker CLI 的替代产品及个人推荐 - RedHat 3件套 - Buildah、Podman 和 Skopeo
书接上文,今天来介绍 Docker CLI 替代产品的另一种选择:nerdctl。
nerdctl 简介
nerdctl:是由 containerd 开源的、contaiNERD CTL,这是一个用于 containerd 的,且和 Docker 兼容的 CLI,另外还支持 Compose。
典型应用场景
K8S 1.20+ Node 上做容器 Debug
如果你最近刚刚开始使用 K8S 1.20 及以上版本,并且 CRI 选择了 containerd ,那么你会注意到 containerd 默认带的 CLI - ctr 相比 Docker CLI 发生了较大变化,且存在以下问题:
与 Docker CLI 不兼容,对用户不友好。另外,ctr 缺少以下类似 Docker CLI 的命令:
docker run -p <PORT>docker run --restart=always --net=bridge- 使用
~/.docker/config.json配置docker pull以及认证助手工具如docker-credential-ecr-login docker logs
而 nerdctl 最主要的优点就是几乎完全兼容 Docker CLI,那么 nerdctl 在 K8S 集群中 debug 就很方便。
仅有的一些差别在于 nerdctl 有 namespace 的概念(✍️备注:其实是 containerd 有 namespace 的概念),如下:
- default(默认)
- moby:Docker
- k8s.io:Kubernetes 集群
举例来说要列出 k8s 中的容器,需要:
nerdctl --namespace k8s.io ps -a
综上,在新版本 K8S 中,为了用户体验的一致性,建议:
- 在 K8S Node 上都安装
nerdctl,安装步骤: - 通过
alias命令,实现和之前版本体验一致,操作如下:
vi ~/.bashrc
因为主要是用于 K8S Node 上 debug,所以直接这么写:
alias docker='nerdctl -n k8s.io'
安装和使用
curl -fsSLO https://github.com/containerd/nerdctl/releases/download/v0.13.0/nerdctl-0.13.0-linux-amd64.tar.gz
tar xvzf nerdctl-0.13.0-linux-amd64.tar.gz -C /usr/local/bin/ nerdctl
完整的使用手册见:nerdctl README,可以看到是基本上和 Docker 命令一样。
总结
在 K8S 1.20+ Node 上做容器 Debug,需要用到 CLI,建议使用 nerdctl,并且 alias 成 Docker 提供一致的体验。
至于个人电脑或是操作机,建议不要替换,直接用 Docker 全套它不香吗?
三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.
K8S 1.20 弃用 Docker 评估之 Docker CLI 的替代产品 nerdctl的更多相关文章
- 关于Kubernetes(简称K8S)的开启及基本使用,基于Docker Desktop & WSL2
背景介绍 Kubernetes(简称k8s)已成为目前业界容器编排的事实标准,其搭配Docker可建立非常高效便捷的高可扩展.高可用应用服务架构. Kubernetes的名字来自希腊语,意思是&quo ...
- [k8s]docker calico网络&docker cluster-store
docker cluster-store选项 etcd-calico(bgp)实现docker夸主机通信 配置calico网络 - 启动etcd etcd --listen-client-urls h ...
- 如何在K8S中优雅的使用私有镜像库 (Docker版)
前言 在企业落地 K8S 的过程中,私有镜像库 (专用镜像库) 必不可少,特别是在 Docker Hub 开始对免费用户限流之后, 越发的体现了搭建私有镜像库的重要性. 私有镜像库不但可以加速镜像的拉 ...
- jenkins流水线部署springboot应用到k8s集群(k3s+jenkins+gitee+maven+docker)(2)
前言:上篇已介绍了jenkins在k3s环境部署,本篇继续上篇讲述流水线构建部署流程 1.从gitlab上拉取代码步骤 在jenkins中,新建一个凭证:Manage Jenkins -> Ma ...
- 温故知新Docker概念及Docker Desktop For Windows v3.1.0安装
Docker 简介 什么是Docker? Docker是一个开放源代码软件项目,项目主要代码在2013年开源于GitHub.它是云服务技术上的一次创新,让应用程序布署在软件容器下的工作可以自动化进行, ...
- 建立docker私有库(docker registry)(转)
建立docker私有库(docker registry) 博客分类: docker 我的目标还是无互联网安装,部署内部的docker私有库,目前docker镜像的获得还是需要互联网,将下载好的do ...
- Windows 下安装使用docker swarm machine docker toolbox
下载docker 集成安装环境 http://get.daocloud.io/#install-toolbox 这个网站很不错,下载 这个集成了 docker docker-machine ,还有gi ...
- Docker Architecture、Docker Usage
目录 . 引言 - 为什么要有Docker技术 . Docker简介 . Docker安装.部署.使用 . Docker安全 . Docker底层实现 . Docker网络配置 . Dockerfil ...
- 【云计算】Docker云平台—Docker进阶
Docker云平台系列共三讲,此为第二讲:Docker进阶 参考资料: 五个Docker监控工具的对比:http://www.open-open.com/lib/view/open1433897177 ...
- Docker学习笔记 — Docker私有仓库搭建【转载】
标签: Docker 2015-03-10 21:08 24190人阅读 评论(0) 收藏 举报 分类: Docker(26) 目录(?)[+] 和Mavan的管理一样,Dockers不仅 ...
随机推荐
- 单点登录系统使用Spring Security的权限功能
背景 在配置中心增加权限功能 目前配置中心已经包含了单点登录功能,可以通过统一页面进行登录,登录完会将用户写入用户表 RBAC的用户.角色.权限表CRUD.授权等都已经完成 希望不用用户再次登录,就可 ...
- LoadRunner11录制脚本
1.打开LoadRunner11后界面如下: 2.点击"创建/编辑脚本",会打开一个新窗口,如下: 3.这里新建一个web/html格式的测试.点击"文件"-& ...
- SpringCloud微服务框架复习笔记
SpringCloud微服务框架复习笔记 什么是微服务架构? 微服务是一种软件开发技术,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.每个服务运行在其独立的进 ...
- TS学习笔记
类型 类型 例子 描述 number 1,2,-2 任意数字 string 'hi',"hi" 任意字符串 boolean true,false 布尔值或者true false 字 ...
- Hash——温暖人心的算法
目录 简介 计算Hash 前缀Hash递推 快速计算子串Hash 用Hash匹配字符串 综合:P2852 [USACO06DEC]Milk Patterns G 简介 Hash,将一个字符串映射到一个 ...
- 十九岁纪念|HBD To ME
过了20年,终于摆脱了令人讨厌的应试生活.19岁,一半是高三,一半是大学,由高考,分成两半.说实话,我觉得大学也没有那么令人向往,换种方式读高四吧.长大了,对时间也没有什么概念了.要不是19岁在我的家 ...
- (原创)【B4A】一步一步入门01:简介、开发环境搭建、HelloWorld
一.前言 作者注:絮絮叨叨,可跳过不看. 一直有开发跨平台软件的需求.因为我的主力是C# ,所以当MAUI出现后,我欣喜若狂的开始学习研究.但是经历了两个月左右的时间,我弃坑了,我发现MAUI不是我能 ...
- Unity_UIWidgets - 组件AppBar
Unity_UIWidgets - 组件AppBar AppBar 构造 构造png观看 使用代码 使用效果 AppBar使用结束 结语 图标Icon QQ 今日无推荐 Unity_UIWidgets ...
- 手把手教你将Eureka升级Nacos注册中心
由于原有SpringCloud体系版本比较老,最初的注册中心使用的Eureka后期官方无升级方案,配置中心无法在线管理配置,还有实时上下线的问题,因此需要将原有系统的Eureka服务升级Nacos注册 ...
- 12月6日内容总结——BOM、DOM、两者查找标签的方式和操作标签的方式、操作class和css的方法、事件、jQuery类库
目录 一.BOM操作 BOM概念 window对象 window的子对象 navigator对象(了解即可) screen对象(了解即可) history对象(了解即可) location对象 弹出框 ...