docker笔记14--docker-nerdctl-crictl-ctr使用对比

news2024/12/27 16:21:13

docker笔记14--docker-nerdctl-crictl-ctr使用对比

  • 介绍
  • 工具对比
    • docker
    • nerdctl
    • crictl
    • ctr
  • 注意事项
  • 说明

介绍

随着容器云技术的成熟,越来越多的从业者开始接触、熟悉 docker和containerd 了,很多时候需要同时在 docker 和 containerd之间切换,因此有必要熟悉主流容器产品常见的交互工具。
此处根据笔者使用经验整理出 docker nerdctl crictl ctl 四个工具的常见用法和注意事项,写在此处分享给有需要的小伙伴学习,也方便自己后续查阅.

工具对比

此处列举一些 docker 和 containerd 命令行工具中常见的一些命令, nerdctr | ctr 默认为default命名空间, crictl 默认为 k8s.io 命名空间。

dockernerdctlcrictlctr备注
docker runnerdctl runcrictl runctr run-
docker exec -it NAME|ID shnerdctl exec -it NAME|ID bashcrictl exec -it container-id shctr t exec -t --exec-id CONTAINER sh进入容器
docker psnerdctl pscrictl psctr c ls-
docker start NAME|IDnerdctl startcrictl startctr t start-
docker stop NAME|IDnerdctl stopcrictl stop--
docker stats NAME|IDnerdctl statscrictl stats-容器资源使用情况
docker inspect NAME|IDnerdctl inspectcrictl inspect container-idctr c info容器对象信息
docker rm NAME|IDnerdctl rmcrictl rmctr c rm-
docker cpnerdctl cp---
docker savenerdctl save---
docker loadnerdctl load---
docker commitnerdctl commit---
docker imagesnerdctl imagescrictl imagesctr i ls-
docker logsnerdctl logscrictl logs--
docker buildnerdctl build---
docker rminerdctl rmicrictl rmictr i rm-
docker pullnerdctl pullcrictl pullctr i pull-
docker tagnerdctl tag-ctr i tag-
docker pushnerdctl push-ctr i push-
docker loginnerdctl login---
docker logoutnerdctl logout---
-nerdctl namespace ls-ctr ns ls查看containerd命名空间

docker

Docker 命令行工具docker,它可以用于和DockerCE 、DockerEE产品交互,包含所有的docker命令。网上已经有很多使用文档了,此处就不列举了,有需要请参考官方文档 https://docs.docker.com/engine/reference/commandline/docker/

源码:github docker/cli

nerdctl

nerdctl 是适用于containerd的docker兼容命令行工具,它的绝大多数命令基本和docker的用法一致,更多信息命令请参考官方文档 https://github.com/containerd/nerdctl/blob/main/docs/command-reference.md
用法基本和docker命令行一致,此处不赘述了,后续不定期补充一些nerdctl使用注意事项

nerdctl namespace list 可以快速看到当前的命名空间,以及对应空间中容器和镜像、卷的数量.
在这里插入图片描述

注意:
1 nerdctl 删除或者变更容器的时候要保证容器ID|NAME唯一,否则会出现 multiple IDs found with provided prefix 的错误
如下通过ctr创建 nginx-test 和 nginx-test2 的容器,stop nginx-test的时候就会报错
在这里插入图片描述

crictl

crictl 是 kubelet容器运行时接口(CRI)的命令行和验证工具。CRI-tools旨在为Kubelet CRI提供一系列调试和验证工具,其中包括:
crictl: kubelet CRI的CLI。
critest: kubelet CRI的验证测试套件。
源码: https://github.com/kubernetes-sigs/cri-tools/

它查看的是 k8s.io 命名空间内的容器资源,没有提供额外命名空间选项。
它提供了很多和k8s强相关的命令,例如 port-forward 、runp、 rmp、pods、stopp、statsp ;
也提供了很多和docker类似的命令,例如 exec、logs、ps、run、pull、stop,但有些底层逻辑和nerdctl等工具看到的不太相同,例如 crictl 看到的容器比nerdctl看到的少一些,因为它屏蔽了一些k8s中不需要用户关注的pause 容器.
在这里插入图片描述
注意:

  1. crictl 没有 build, push 等镜像相关的操作

ctr

正如Docker产品有默认的命令行工具docker一样,containerd 也有一个基础的工具ctr,它包含了容器操作的常见命令,功能没有docker、nerdctl完善,主要用于containerd debug。
源码位置: https://github.com/containerd/containerd

ctr 部分功能如下:
ctr ns list
用于查看命名空间, 不加命名空间默认为default命名空间
在这里插入图片描述

ctr c create docker.io/library/nginx:1.23.4 nginx-test # 创建容器
ctr c ls # 查看容器
ctr c info nginx-test # 查看容器详细信息

ctr t start nginx-test -d # ctr c create 的容器并没有处于运行状态,需要通过ctr t start 启动容器
ctr t kill nginx-test # 停掉指定的task
ctr t ls # 查看 task

ctr run -d docker.io/library/nginx:1.23.4 nginx-test2 # 直接启动一个容器,效果等价于 ctr c create + ctr t start 两个命令

ctr i ls # 查看镜像
ctr i pull docker.io/library/nginx:1.23.4 # 拉镜像
ctr i rm docker.io/library/nginx:1.23.4 # 删除镜像
ctr i tag docker.io/library/nginx:1.23.4 your-harbor.com/library/nginx:1.23.4 # 镜像打标签
ctr i push your-harbor.com/library/nginx:1.23.4 --platform=linux/amd64 --user ‘yourUser:yourPassword’ # 推镜像

注意:

  1. 直接push会报错 ctr: content digest sha256:67xxxf2: not found ,需要加上--platform=linux/amd64 ,常见可选平台包括:linux/386,linux/amd64,linux/arm/v5,linux/arm/v7,linux/arm64/v8,linux/mips64le,linux/ppc64le,linux/s390x
  2. ctr 没有login 命令,若镜像仓库为私有的,需要加上 --user yourUser:yourPassword

注意事项

  1. 若想查看、操作容器相关信息推荐使用 nerdctl,若想同时看到机器上pod资源就可以考虑用crictl工具了。

说明

辞旧迎新,新手使用Containerd时的几点须知
Container命令ctr,crictl的用法
一文搞懂Containerd
Containerd ctr、crictl、nerdctl 客户端命令介绍与实战操作

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

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

相关文章

L1 频段卫星导航射频前端低噪声放大器芯片MS2659

产品简述 MS2659 是一款具有高增益、低噪声系数的低噪声放大器 (LNA) ,支持 L1 频段多模式全球卫星定位,可以应用于 GPS 、 北斗二代、伽利略、 GLONASS 等 GNSS 导航接收机中。芯片采 用 SOT23-6 的封装形式。 主要特点 ◼ 支持北斗、 …

java调用c函数

一、关于JNI JNI是Java Native Interface的缩写,JNI是JAVA平台专门用于和本地C代码进行相互操作的API,称为JAVA本地接口。 二、JNI开发流程 1.在JAVA中先声明一个native方法。2.通过javac -h或javah -jni命令导出JNI使用的C头头文件。3.使用C实现本地方…

科普丨企业防泄密软件是什么

企业防泄密软件是一种专门设计用于保护企业敏感信息不被泄露的软件产品。这类软件通常采用多种安全技术和策略,以增强企业数据的安全性和保密性,防止核心知识产权和商业机密的泄露。 域之盾软件----企业防泄密软件的主要功能包括: 1、数据加密…

16位 (MCU) R7F101G6G3CSP、R7F101G6E3CSP、R7F101G6G2DSP、R7F101G6E2DSP是新一代RL78通用微控制器

产品描述 RL78/G24微控制器具有RL78系列MCU的最高处理性能,CPU工作频率高达48MHz,设有灵活的应用加速器 (FAA)。FAA是一款专门用于算法运算的协处理器,可以独立于CPU运行,提供更高处理能力。RL78/G24 MCU具有增强的模拟功能和大量…

【MySQL】表的约束——主键、外键、唯一键,三键区别知否?

表的约束 前言正式开始空属性默认值comment列描述zerofill主键增删主键复合主键 自增长唯一键外键主键作为外键约束唯一键作为外键约束 总结 前言 我在上一篇讲完了所有的数据类型,数据类型本身也是MySQL中的一种约束,如果你对于MySQL中的数据类型不太了…

【面试经典150 | 数学】加一

文章目录 写在前面Tag题目来源解题思路方法一:加一 其他语言python3 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对于本题涉及到的数据结…

wu-ui-uniapp 多平台快速开发的UI框架

WU-UI 多平台快速开发的UI框架(无论平台,一致体验) 官方群 wu-ui官方1群: 767943089 说明 wu-ui(如虎添翼) 是 全面兼容多端的uniapp生态框架,基于vue2、vue3和nvue开发。丰富组件库,便捷工具库,简单高效。无论平台&#x…

电子眼与无人机在城市安防中的协同应用研究

随着城市化进程的快速推进,城市安全问题成为了人们关注的焦点。传统的安防手段已经无法满足现代城市复杂多变的安全需求。因此,结合电子眼与无人机技术,实现二者之间的协同应用,成为提升城市安防能力的重要途径。 一、电子眼与无人…

ArcGIS Pro 优化的热点分析【Optimized Hot Spot Analysis】

ArcGIS Pro 优化的热点分析【Optimized Hot Spot Analysis】Optimized Hot Spot Analysis 优化的热点分析https://mp.weixin.qq.com/s/lfoIls8exW5G6PPJ9gtDew em,先给大家推荐一个空间统计分析的学习资源网站 https://spatialstats-analysis-1.hub.arcgis.com/ .…

基于SSM的个人通讯录(有报告)。Javaee项目。

演示视频: 基于SSM的个人通讯录(有报告)。Javaee项目。 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 项目介绍: 采用M(mod…

全新小权云黑系统

小权云黑管理系统 V1.0 功能如下: 1.添加骗子,查询骗子 2.可添加团队后台方便审核用 3.在线反馈留言系统 4.前台提交骗子,后台需要审核才能过 5.后台使用光年UI界面 6.新增导航列表,可给网站添加导航友链 7.可添加云黑类型收录 8.…

【Linux专题】firewalld 过滤出接口流量

【赠送】IT技术视频教程,白拿不谢!思科、华为、红帽、数据库、云计算等等_厦门微思网络的博客-CSDN博客文章浏览阅读428次。风和日丽,小微给你送福利~如果你是小微的老粉,这里有一份粉丝福利待领取...如果你是新粉关注到了小微&am…

3分钟搞懂oled透明触摸显示屏

OLED透明触摸显示屏是一种先进的显示技术,它结合了OLED显示屏和触摸功能,具有透明度高、色彩鲜艳、触摸灵敏、节能环保等优点。下面用3分钟时间,为您讲解OLED透明触摸显示屏的基本原理、特点和优势。 OLED透明触摸显示屏的基本原理 OLED透明…

易点易动RFID管理系统:年终固定资产盘点的革命

随着现代企业规模的扩大和固定资产数量的增加,年终固定资产盘点成为了一项繁琐而耗时的任务。传统的手工盘点方法不仅效率低下,还容易出现错误和遗漏。为了解决这一难题,易点易动RFID管理系统应运而生。本文将重点介绍易点易动RFID管理系统在…

JMeter --- 生成HTML性能测试报告

一、生成HTML测试报告的两种方式 1、利用已有.jtl文件生成报告 上篇文章介绍过如何在linux环境运行jmeter并生成报告,如果已经有经过测试生成的.jtl文件,可以利用该文件直接生成HTML可视化测试报告。 进入jmeter的bin目录下,输入如下命令&…

鸿蒙应用开发初尝试《创建项目》,之前那篇hello world作废

经过几年的迅速发展,鸿蒙抛弃了JAVA写应用的方式,几年前了解的鸿蒙显然就gg了。 这几年鸿蒙发布了方舟(ArkUI Arkts),将TypeScript作为了推荐开发语言,你依然可以用FAJS,但华为推荐用StageArkTs!!!那么你还…

Appium移动自动化测试--安装Appium

Appium 自动化测试是很早之前就想学习和研究的技术了,可是一直抽不出一块完整的时间来做这件事儿。现在终于有了。 反观各种互联网的招聘移动测试成了主流,如果再不去学习移动自动化测试技术将会被淘汰。 web自动化测试的路线是这样的:编程语…

虚拟机配置网络ip,主打一个详细

文章目录 一、前言二、安装vim编辑器三、检查联网状态1. 使用ping命令 四、查看ip五、ens33网卡六、开机启动ens33网卡七、获取子网地址和子网掩码八、配置网关与子网掩码1. 编辑虚拟网络信息2. 配置网关3. 配置ens33网卡信息 九、动态ip配置十、静态ip配置 一、前言 本文主要…

高精度电压源是什么意思

高精度电压源是一种能够产生稳定、准确和可调节的电压输出的设备。在各种电子应用中,高精度电压源被广泛应用于模拟信号处理、测试和测量领域。本文将介绍高精度电压源的基本原理、特点和应用场景。 高精度电压源的基本原理是利用电平转换和放大电路,将输…

二次元商业计划书PPT模版

二次元商业计划书PPT模版 共:9页 PPT模版: 百度网盘 请输入提取码:ax48