1.containerd的概述
名字:ctr (containerd CLI)
用法:CTR [global options] command [command options] [arguments…]
描述:CTR是一个不受支持的用于交互的调试和管理客户机使用容器守护进程。因为它不受支持,选项和操作不能保证向后兼容或容器项目从一个版本到另一个版本都是稳定的
注:如果没有指定默认名称空间的话,则要 (-n 名称空间)
命令 | 说明 | 操作示例 |
---|
plugins, plugin | 提供关于容器插件的信息 | ctr images list | version | 打印客户端和服务器的版本 | ctr version | containers, c, container | 管理容器 | ctr containers list | content | 管理内容 | ctr content list | events, event | 事件显示容器事件 | ctr events | images, image, i | 管理镜像 | 查看:ctr i list | leases | 管理租赁 | ctr leases | namespaces, namespace, ns | 管理命名空间 | ctr namespaces list | pprof | 为containerd提供golang Pprof输出 | | run | 运行容器 | | snapshots, snapshot | 管理快照 | | tasks, t, task | 管理任务 | ctr -n k8s.io tasks list kill -a -s 9 {id} | install | 安装一个新的包 | | oci | OCI tools | | shim | 与shim直接交互 | | help, h | 帮助 | |
全局选择
options | 说明 | |
---|
--debug | 打开日志的调试输出 | | --address value, -a value | containerd的GRPC服务器地址(默认:"/run/k3s/containerd/containerd.sock") [$CONTAINERD_ADDRESS] | | --timeout value | CTR命令的总超时时间(默认值:0) | | --connect-timeout value | 连接到容器的超时时间(默认值:0) | | --namespace value, -n value | 命名空间与命令一起使用(默认:"k8s.io") [$CONTAINERD_NAMESPACE] | | --help, -h | 帮助 | | --version, -v | 打印版本 | |
2.ctr日常操作示例
操作示例
# 查看镜像
~]# ctr images list 或 ctr i ls
# 如没有指定名称空间则需指定
~]# ctr namespaces list 或 ctr ns list
NAME ? LABELS
k8s.io
~]# ctr -n k8s.io images list
?
# 镜像标记
~]# ctr -n k8s.io images tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 k8s.gcr.io/pause:3.2
?
# 删除镜像
~]# ctr -n k8s.io images rm k8s.gcr.io/pause:3.2
?
# 拉取镜像
~]# ctr -n k8s.io images pull -k k8s.gcr.io/pause:3.2
?
# 导出镜像
~]# ctr -n k8s.io images export pause.tar k8s.gcr.io/pause:3.2
?
# 导入镜像;不支持 build,commit 镜像
~]# ctr -n k8s.io i import pause.tar
?
# 运行容器
~]# ctr -n k8s.io run --null-io --net-host -d –env PASSWORD=$drone_password –mount type=bind,src=/etc,dst=/host-etc,options=rbind:rw –mount type=bind,src=/root/.kube,dst=/root/.kube,options=rbind:rw $image sysreport bash /sysreport/run.sh
?
–null-io: 将容器内标准输出重定向到/dev/null
–net-host: 主机网络
-d: 当task执行后就进行下一步shell命令,如没有选项,则会等待用户输入,并定向到容器内
?
# 查看容器
~]# ctr containers list 或 ctr c ls
# 如没有指定名称空间则需指定
~]# ctr -n k8s.io c ls
?
# 先找出容器然后搜索容器名
~]# ctr -n k8s.io c ls
CONTAINER ? ? IMAGE ? ? ? ? ? ? ? ? ? ? RUNTIME
06.....86 ? ? pause:3.2 ? ? ? ? ? ? io.containerd.runc.v2
# 找出容器名
~]# ctr -n k8s.io tasks list
# 停止容器
~]# kill -a -s 9 {id}
|