目录
docker与containerd常用命令对比
说明 | docker命令 | containerd命令 |
查看本地镜像 | docker images | ctr images ls ctr -n k8s.io images ls |
拉取镜像 | docker pull imagename | ctr images pull imagename |
推送镜像 | docker push imagename | ctr images push imagename |
给镜像打标签 | docker tag imagename tagname | ctr images tag imagename tagname |
导出镜像 | docker save filename imagename | ctr images export filename imagename |
导入镜像 | docker load filename | ctr image import filename |
运行并创建容器 | docker run [options] imagename commond | ctr run [options] imagename containername |
进入容器 | docker exec [options] names commond | ctr task exec [options] names commond |
查看运行的容器 | docker ps | ctr task list |
删除容器 | docker rm [options] names | 1.ctr task rm -f names 2. ctr c rm -f names |
docker可以基于dockerfile构建对象,但是ctr命令无法构建对象
基础命令
systemctl status containerd #查看containerd状态
systemctl start containerd #开启containerd
systemctl stop containerd #关闭containerd
systemctl restart containerd #重启containerd
systemctl enable containerd #将containerd设置为开机自启动
containerd help #查看containerd帮助
containerd version #查看containerd版本
操作命令
containerd常用的操作命令格式为:
ctr [global options] command [command options] [arguments...]
command options
命令 | 说明 |
plugins, plugin | 提供有关容器插件的信息 |
version | 打印客户端和服务器的版本 |
containers, c, container | 容器管理 |
content | 内容管理 |
events, event | 显示容器事件 |
images, image, i | 镜像管理 |
leases | 租约管理 |
namespaces, namespace, ns | 命名空间管理 |
pprof | 为 containerd 提供 golang pprof 输出 |
run | 运行容器 |
snapshots, snapshot | 快照管理 |
tasks, t, task | 任务管理 |
install | 安装package |
oci | oci工具 |
deprecations | |
shim | 直接与shim交互 |
help, h | 显示命令列表或一个命令的帮助 |
global options
选项 | 说明 |
--debug | 打开日志调试 |
--address value, -a value | containerd的GRPC服务地址 默认 "/run/containerd/containerd.sock" |
--timeout value | ctr命令超时时间 |
--connect-timeout value | 连接到容器超时 |
--namespace value, -n value | 命名空间与命令一起使用 默认 "default" |
--help, -h | 帮助 |
--version, -v | 版本 |
登陆AWS ECR
aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin {aws.id}.dkr.ecr.ap-northeast-1.amazonaws.com
常用命令
1. 查看containerd命名空间
ctr namespace ls #查看containerd命名空间
[root@localhost opt]# ctr namespace ls
NAME LABELS
k8s.io
2. 查看containerd的镜像
ctr images ls
因为没有指定namespace,所以查看的是默认命名空间下的镜像;
[root@localhost opt]# ctr images ls
REF TYPE DIGEST SIZE PLATFORMS LABELS
查看指定命名空间 k8s.io 下的镜像
ctr --namespace k8s.io images ls
ctr -n k8s.io images ls
3. 拉取containerd的镜像
ctr -n k8s.io images pull registry.aliyuncs.com/google_containers/pause-amd64:3.2
指定k8s.io为命名空间拉取pause-amd64:3.2的镜像
4. 删除containerd的镜像
ctr -n k8s.io images rm sha256:80d28bedfe5dec59da9ebf8e6260224ac9008ab5c11dbbe16ee3ba3e4439ac2c
删除k8s.io下的镜像
5. 导出containerd的镜像
ctr -n k8s.io images export pause.tar.gz registry.aliyuncs.com/google_containers/pause-amd64:3.2
6. 导入containerd的镜像
ctr -n k8s.io image import pause.tar.gz
7. 标记containerd的镜像(起别名)
ctr -n k8s.io images tag registry.aliyuncs.com/google_containers/pause-amd64:3.2 pause:3.2
8. 运行containerd的容器
ctr -n k8s.io run -d docker.io/library/centos:latest centos_k8s
在后台运行一个centos镜像的容器,名称叫做centos_k8s;
9. 查看运行容器的task
ctr -n k8s.io task ls
ctr -n k8s.io task list
10. 启动指定容器的task
ctr -n k8s.io task start -d centos_k8s
11. 进入指定容器的task
ctr -n k8s.io task exec --exec-id 3118 -t centos_k8s /bin/bash
12. 删除指定容器的task
ctr -n k8s.io task rm -f centos_k8s
13. 停止指定容器的task
ctr -n k8s.io task kill --signal 9 centos_k8s
14.查看容器
ctr -n k8s.io c list
15.删除容器
ctr -n k8s.io c rm centos
删除容器以前需要将task删除,不然会报以下错误:
注
经过测试发现docker save -o 命令导出来的镜像可以用ctr images import 导出;同理ctr images export导出来的镜像也可以有docker load 还原;
所以两者应该是通用的
kubectlan安装
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl