Container 命令ctr、crictl 命令使用说明
wptr33 2025-05-22 14:12 41 浏览
一、ctr 命令使用
Container命令ctr, crictl的用法
版本:ctr containerd.io 1.4.3
containerd 相比于docker , 多了namespace概念, 每个image和container 都会在各自的namespace下可见, 目前k8s会使用k8s.io 作为命名空间
1.1、查看ctr image可用操作
$. ctr image list
# or
$. ctr i list
# or
$. ctr i ls1.2、镜像标记tag
$. ctr -n k8s.io i tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 k8s.gcr.io/pause:3.2
# 注意: 若新镜像reference 已存在, 需要先删除新reference, 或者如下方式强制替换
$. ctr -n k8s.io i tag --force registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 k8s.gcr.io/pause:3.2Copy1.3、删除镜像
$. ctr -n k8s.io i rm k8s.gcr.io/pause:3.2Copy1.4、拉取镜像
$. ctr -n k8s.io i pull -k k8s.gcr.io/pause:3.2Copy1.5、推送镜像
$. ctr -n k8s.io i push -k k8s.gcr.io/pause:3.2Copy1.6、导出镜像
$. ctr -n k8s.io i export pause.tar k8s.gcr.io/pause:3.2Copy1.7、导入镜像
# 不支持 build,commit 镜像
$. ctr -n k8s.io i import pause.tarCopy1.8、查看容器相关操作
$. ctr cCopy1.9、运行容器
- –null-io: 将容器内标准输出重定向到/dev/null
- –net-host: 主机网络
- -d: 当task执行后就进行下一步shell命令,如没有选项,则会等待用户输入,并定向到容器内
- –mount 挂载本地目录或文件到容器
- –env 环境变量
ctr -n k8s.io run --null-io --net-host -d \
–env PASSWORD="123456"
–mount type=bind,src=/etc,dst=/host-etc,options=rbind:rwCopy1.10、容器日志
注意: 容器默认使用fifo创建日志文件, 如果不读取日志文件,会因为fifo容量导致业务运行阻塞
如要创建日志文件,建议如下方式创建:
$. ctr -n k8s.io run --log-uri file:///var/log/xx.logCopy二、ctr和docker命令比较
Containerd命令 | Docker命令 | 描述 |
ctr task ls | docker ps | 查看运行容器 |
ctr image ls | docker images | 获取image信息 |
ctr image pull pause | docker pull pause | pull 应该pause镜像 |
ctr image push pause-test | docker push pause-test | 改名 |
ctr image import pause.tar | docker load 镜像 | 导入本地镜像 |
ctr run -d pause-test pause | docker run -d --name=pause pause-test | 运行容器 |
ctr image tag pause pause-test | docker tag pause pause-test | tag应该pause镜像 |
三、crictl 命令
3.1、crictl 配置
# 通过在配置文件中设置端点 --config=/etc/crictl.yaml
root@k8s-node-0001:~$ cat /etc/crictl.yaml
runtime-endpoint: unix:///run/containerd/containerd.sockCopy3.2、列出业务容器状态
$. crictl inspect ee20ec2346fc5Copy3.3、查看运行中容器
root@k8s-node-0001:~$ crictl pods
POD ID CREATED STATE NAME NAMESPACE ATTEMPT RUNTIME
b39a7883a433d 10 minutes ago Ready canal-server-quark-b477b5d79-ql5l5 mbz-alpha 0 (default)Copy3.4、打印某个固定pod
root@k8s-node-0001:~$ crictl pods --name canal-server-quark-b477b5d79-ql5l5
POD ID CREATED STATE NAME NAMESPACE ATTEMPT RUNTIME
b39a7883a433d 12 minutes ago Ready canal-server-quark-b477b5d79-ql5l5 mbz-alpha 0 (default)Copy3.5、打印镜像
root@k8s-node-0001:~$ crictl images
IMAGE TAG IMAGE ID SIZE
ccr.ccs.tencentyun.com/koderover-public/library-docker stable-dind a6e51fd179fb8 74.6MB
ccr.ccs.tencentyun.com/koderover-public/library-nginx stable 588bb5d559c28 51MB
ccr.ccs.tencentyun.com/koderover-public/nsqio-nsq v1.0.0-compat 2714222e1b39d 22MBCopy3.6、只打印镜像 ID
root@k8s-node-0001:~$ crictl images -q
sha256:a6e51fd179fb849f4ec6faee318101d32830103f5615215716bd686c56afaea1
sha256:588bb5d559c2813834104ecfca000c9192e795ff3af473431497176b9cb5f2c3
sha256:2714222e1b39d8bd6300da72b0805061cabeca3b24def12ffddf47abd47e2263
sha256:be0f9cfd2d7266fdd710744ffd40e4ba6259359fc3bc855341a8c2adad5f5015Copy3.7、打印容器清单
root@k8s-node-0001:~$ crictl ps -a
CONTAINER IMAGE CREATED STATE NAME ATTEMPT POD ID
ee20ec2346fc5 c769a1937d035 13 minutes ago Running canal-server 0 b39a7883a433d
76226ddb736be cc0c524d64c18 34 minutes ago Running mbz-rescue-manager 0 2f9d48c49e891
e2a19ff0591b4 eb40a52eb437d About an hour ago Running export 0 9844b5ea5fdbcCopy3.8、打印正在运行的容器清单
root@k8s-node-0001:~$ crictl ps
CONTAINER IMAGE CREATED STATE NAME ATTEMPT POD ID
ee20ec2346fc5 c769a1937d035 13 minutes ago Running canal-server 0 b39a7883a433dCopy3.9、容器上执行命令
root@k8s-node-0001:~$ crictl exec -i -t ee20ec2346fc5 ls
app.sh bin canal-server health.sh node_exporter node_exporter-0.18.1.linux-arm64Copy3.10、获取容器的所有日志
root@k8s-node-0001:~$ crictl logs ee20ec2346fc5
DOCKER_DEPLOY_TYPE=VM
==> INIT /alidata/init/02init-sshd.sh
==> EXIT CODE: 0
==> INIT /alidata/init/fix-hosts.pyCopy3.11、获取最近的 N 行日志
root@k8s-node-0001:~$ crictl logs --tail=2 ee20ec2346fc5
start canal successful
==> START SUCCESSFUL ...Copy3.12、拉取镜像
crictl pull busyboxCopy- 上一篇:Docker常用命令(2)
- 下一篇:帮你打造一个私有化的在线个人文档系统
相关推荐
- oracle数据导入导出_oracle数据导入导出工具
-
关于oracle的数据导入导出,这个功能的使用场景,一般是换服务环境,把原先的oracle数据导入到另外一台oracle数据库,或者导出备份使用。只不过oracle的导入导出命令不好记忆,稍稍有点复杂...
- 继续学习Python中的while true/break语句
-
上次讲到if语句的用法,大家在微信公众号问了小编很多问题,那么小编在这几种解决一下,1.else和elif是子模块,不能单独使用2.一个if语句中可以包括很多个elif语句,但结尾只能有一个...
- python continue和break的区别_python中break语句和continue语句的区别
-
python中循环语句经常会使用continue和break,那么这2者的区别是?continue是跳出本次循环,进行下一次循环;break是跳出整个循环;例如:...
- 简单学Python——关键字6——break和continue
-
Python退出循环,有break语句和continue语句两种实现方式。break语句和continue语句的区别:break语句作用是终止循环。continue语句作用是跳出本轮循环,继续下一次循...
- 2-1,0基础学Python之 break退出循环、 continue继续循环 多重循
-
用for循环或者while循环时,如果要在循环体内直接退出循环,可以使用break语句。比如计算1至100的整数和,我们用while来实现:sum=0x=1whileTrue...
- Python 中 break 和 continue 傻傻分不清
-
大家好啊,我是大田。...
- python中的流程控制语句:continue、break 和 return使用方法
-
Python中,continue、break和return是控制流程的关键语句,用于在循环或函数中提前退出或跳过某些操作。它们的用途和区别如下:1.continue(跳过当前循环的剩余部分,进...
- L017:continue和break - 教程文案
-
continue和break在Python中,continue和break是用于控制循环(如for和while)执行流程的关键字,它们的作用如下:1.continue:跳过当前迭代,...
- 作为前端开发者,你都经历过怎样的面试?
-
已经裸辞1个月了,最近开始投简历找工作,遇到各种各样的面试,今天分享一下。其实在职的时候也做过面试官,面试官时,感觉自己问的问题很难区分候选人的能力,最好的办法就是看看候选人的github上的代码仓库...
- 面试被问 const 是否不可变?这样回答才显功底
-
作为前端开发者,我在学习ES6特性时,总被const的"善变"搞得一头雾水——为什么用const声明的数组还能push元素?为什么基本类型赋值就会报错?直到翻遍MDN文档、对着内存图反...
- 2023金九银十必看前端面试题!2w字精品!
-
导文2023金九银十必看前端面试题!金九银十黄金期来了想要跳槽的小伙伴快来看啊CSS1.请解释CSS的盒模型是什么,并描述其组成部分。...
- 前端面试总结_前端面试题整理
-
记得当时大二的时候,看到实验室的学长学姐忙于各种春招,有些收获了大厂offer,有些还在苦苦面试,其实那时候的心里还蛮忐忑的,不知道自己大三的时候会是什么样的一个水平,所以从19年的寒假放完,大二下学...
- 由浅入深,66条JavaScript面试知识点(七)
-
作者:JakeZhang转发链接:https://juejin.im/post/5ef8377f6fb9a07e693a6061目录...
- 2024前端面试真题之—VUE篇_前端面试题vue2020及答案
-
添加图片注释,不超过140字(可选)...
- 今年最常见的前端面试题,你会做几道?
-
在面试或招聘前端开发人员时,期望、现实和需求之间总是存在着巨大差距。面试其实是一个交流想法的地方,挑战人们的思考方式,并客观地分析给定的问题。可以通过面试了解人们如何做出决策,了解一个人对技术和解决问...
- 一周热门
- 最近发表
-
- oracle数据导入导出_oracle数据导入导出工具
- 继续学习Python中的while true/break语句
- python continue和break的区别_python中break语句和continue语句的区别
- 简单学Python——关键字6——break和continue
- 2-1,0基础学Python之 break退出循环、 continue继续循环 多重循
- Python 中 break 和 continue 傻傻分不清
- python中的流程控制语句:continue、break 和 return使用方法
- L017:continue和break - 教程文案
- 作为前端开发者,你都经历过怎样的面试?
- 面试被问 const 是否不可变?这样回答才显功底
- 标签列表
-
- git pull (33)
- git fetch (35)
- mysql insert (35)
- mysql distinct (37)
- concat_ws (36)
- java continue (36)
- jenkins官网 (37)
- mysql 子查询 (37)
- python元组 (33)
- mybatis 分页 (35)
- vba split (37)
- redis watch (34)
- python list sort (37)
- nvarchar2 (34)
- mysql not null (36)
- hmset (35)
- python telnet (35)
- python readlines() 方法 (36)
- munmap (35)
- docker network create (35)
- redis 集合 (37)
- python sftp (37)
- setpriority (34)
- c语言 switch (34)
- git commit (34)
