ctr 命令
常用脚本
#!/bin/bash
set -x
images="
openyurt/yurthub:v0.6.1
"
r_host="docker.io"
l_host="[harbor.internal.com]"
ctr="ctr -n k8s.io"
tags=" "
for image in $images;do
# download
$ctr i rm $r_host/$image
#$ctr i pull --all-platforms -u user:password $r_host/$image
$ctr i pull --all-platforms -u user:password $r_host/$image
# $ctr i rm $l_host/$image
$ctr i tag $r_host/$image $l_host/devops-public/$image
$ctr i push -u 'user:password' $l_host/devops-public/$image
# tags="$l_host/$image $tags"
done
# $ctr i export ctr-image.HuanBaoYuan.tar $tags
#!/bin/bash
# docker save nginx:1 > nginx.tar 必须是tar文件
images="
platform-test/platform-system:2.1.2.10
platform-test/platform-auth:2.1.2.2
platform-test/cloud-gateway:1.1.4
platform/system-front:1.1.5-sass
"
r_host="[harbor.internal.com]"
l_host="10.229.94.176:5000"
ctr="ctr -n k8s.io"
for image in $images;do
$ctr i pull -u user:password $r_host/$image
$ctr i tag $r_host/$image $l_host/$image
$ctr i push $l_host/$image
$ctr rmi $r_host/$image
done
使用用户名和密码下载镜像
[root@RJYF-T-042 ~]# ctr -n k8s.io i pull -u user:password harbor.internal.com/platform-test/platform-system:2.1.2.10
创建并运行容器
[root@RJYF-T-042 ~]# ctr run --rm -t harbor.internal.com/busybox/busybox:latest test-name sh
[root@RJYF-T-042 ~]# ctr run --rm -t harbor.internal.com/ubuntu/ubuntu:16.04 test-ubuntu bash
查看本地镜像
[root@RJYF-T-042 ~]# ctr i ls
[root@RJYF-T-042 ~]# ctr i ls -q
拉取远程镜像到本地
[root@RJYF-T-042 ~]# ctr i pull docker.io/library/nginx:alpine
[root@RJYF-T-042 ~]# ctr i pull --all-platforms docker.io/library/nginx:alpine
[root@RJYF-T-042 ~]# ctr i pull --platform=arm64 docker.io/library/nginx:alpine
[root@RJYF-T-042 ~]# ctr i pull --platform=linux/amd64 docker.io/library/nginx:alpine
检查镜像
[root@RJYF-T-042 ~]# ctr i check
[root@RJYF-T-042 ~]# ctr i check -q
重新标记镜像tag
[root@RJYF-T-042 ~]# ctr i tag docker.io/library/nginx:1.18 harbor.internal.com/nginx/nginx:1.18
删除镜像
[root@RJYF-T-042 ~]# ctr i rm docker.io/library/nginx:1.18
导出镜像。导出的是arm的镜像,那么只能在arm的机器上导入。
[root@RJYF-T-042 ~]# ctr i export --platform=linux/arm64 nginx_arm64_images.tar.gz docker.io/library/nginx:alpine # ARM
[root@RJYF-T-042 ~]# ctr i export --platform=linux/amd64 nginx_amd64_images.tar.gz docker.io/library/nginx:alpine # AMD
[root@RJYF-T-042 ~]# ctr i export --all-platforms nginx.tar.gz docker.io/library/nginx:alpine # 当出现错误时,使用全平台下载
导入镜像
[root@RJYF-T-042 ~]# ctr i import nginx.tar.gz
[root@RJYF-T-042 ~]# ctr i ls -q
push 也要加 –platform=linux/amd64

清理无用镜像
crictl rmi –prune
[root@RJYF-T-042 ~]# ctr -n k8s.io i push --hosts-dir /etc/containerd/certs.d/ registry.local:5000/kubernetesui/dashboard:v2.7.0
查看名称空间
# ctr ns ls
在指定名称空间拉取镜像
# ctr -n k8s.io images pull docker.io/library/redis:latest
列举镜像
# ctr -n k8s.io i ls -q