Container容器语法

19 篇文章 0 订阅
17 篇文章 0 订阅

Container

作为接替 Docker 运行时的 Containerd 在早在 Kubernetes1.7 时就能直接与 Kubelet 集成使用,只是大部分时候我们因熟悉 Docker,在部署集群时采用了默认的 dockershim。在V1.24起的版本的 kubelet 就彻底移除了dockershim,改为默认使用Containerd了,当然也使用 cri-dockerd 适配器来将 Docker Engine 与 Kubernetes 集成,containerd 相比于docker , 多了namespace概念, 每个image和container 都会在各自的namespace下可见, 目前k8s会使用k8s.io 作为命名空间

更换 Containerd 后,以往我们常用的 docker 命令也不再使用,取而代之的分别是 crictl 和 ctr 两个命令客户端。crictl 是遵循 CRI 接口规范的一个命令行工具,通常用它来检查和管理kubelet节点上的容器运行时和镜像。ctr 是 containerd 的一个客户端工具

Containerd 也有 namespaces 的概念,对于上层编排系统的支持,ctr 客户端 主要区分了 3 个命名空间分别是k8s.io、moby和default,以上我们用crictl操作的均在k8s.io命名空间,使用ctr 看镜像列表就需要加上-n 参数。crictl 是只有一个k8s.io命名空间,但是没有-n 参数。

ctr images pull 拉取的镜像默认放在default,而 crictl pull 和 kubelet 默认拉取的镜像都在 k8s.io 命名空间下。所以通过ctr导入镜像的时候特别注意一点,最好指定命名空间

# containerd 版本 
ctr -v
# k8s 版本
crictl -v 

# 一般来说你某个主机安装了 k8s 后,命令行才会有 crictl 命令。而 ctr 是跟 k8s 无关的,你主机安装了 containerd 服务后就可以操作 ctr 命令

一、镜像

1.1、常见命令

释义语法备注(不指明命名空间,默认为k8s.io)
查看所有镜像crictl images & ctr image list & ctr i list & ctr i ls四种形式皆可
删除镜像ctr -n k8s.io i rm k8s.gcr.io/pause:3.2
删除镜像crictl rmi k8s.gcr.io/pause:3.2
拉取镜像ctr -n k8s.io i pull -k k8s.gcr.io/pause:3.2
推送镜像ctr -n k8s.io i push -k k8s.gcr.io/pause:3.2
导出镜像ctr -n k8s.io i export pause.tar k8s.gcr.io/pause:3.2
导入镜像ctr -n k8s.io i import pause.tar
标签TAGctr -n k8s.io i tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 k8s.gcr.io/pause:3.2若镜像存在,使用参数--force
清空无用镜像crictl rmi --prune同docker image prune效果一致

1.2、容器启动

# --null-io: 将容器内标准输出重定向到/dev/null
# --net-host: 主机网络
# -d: 当task执行后就进行下一步shell命令,如没有选项,则会等待用户输入,并定向到容器内
# --mount 挂载本地目录或文件到容器
# --env 环境变量
# --log-uri 如需配置自定义日志,值格式file:///var/log/xx.log
ctr -n k8s.io run \
	--null-io --net-host -d --env PASSWORD="123456" \
    --mount type=bind,src=/etc,dst=/host-etc,options=rbind:rw

二、容器操作

释义语法备注(不指明命名空间,默认为k8s.io)
查看所有podcrictl pods
查看pod信息crictl pods --id dae3e667fc348
启动podcrictl runp xxx
停止podcrictl stopp xxx
移除podcrictl rmp xxx
查看所有容器crictl ps -a涉及显示多个pod下的容器
查看所有容器crictl ps涉及显示多个pod下的容器,状态:在运行
停止容器crictl stop 9992010dab3aa
启动容器crictl start 9992010dab3aa
删除容器crictl rm 9992010dab3aa
查看容器信息crictl inspect 9992010dab3aa
查看容器日志crictl logs 9992010dab3aa
容器内部编辑crictl exec -it 9992010dab3aa -n kube-system /bin/bash最近N行内容追加参数--tail=N
配置文件位置cat /etc/crictl.yamlruntime-endpoint对应值
基于配置文件crictl -r /run/containerd/containerd.sock pods
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学无止境gwx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值