一.k8s镜像管理命令
查出k8s中pod在使用的镜像
kubectl get -o wide deploy -n yxyw-uat |awk ‘{print $7}’
查出镜像地址,勾选正则开头配上镜像推送命令
gem-acr-p-a01-registry-vpc.cn-shenzhen.cr.aliyuncs.com/osale/gyx-admin:yxyw-pre-2023-06-05-11-18-10
二.将pod在使用的镜像推送到阿里云镜像仓库
ctr -n k8s.io i push -u lj@gemdale-ali:passwd gem-acr-p-a01-registry-vpc.cn-shenzhen.cr.aliyuncs.com/osale/gyx-admin:yxyw-pre-2023-06-05-11-18-10
三.crictl 命令管理镜像
删除未被使用的镜像,思路打印所有镜像(crictl images) ,过滤掉正在使用的镜像(crictl ps),其余的都删除
crictl images 过滤出IMAGE ID
inux 中shell文件内容,Linux Shell从一个文件去掉包含在另一个文件的内容
方法一:使用grep
grep -v -f file1 file2 &&grep -v -f file2 file1
参数-v,表示invert match,即反向匹配,输出没有匹配上的项。参数-f,表示从文件中读取匹配模板(pattern)。方法一中的前一部分,在文件file1中匹配模板,来反向匹配文件file2中的内容,即输出文件file2中,在file1中没有的内容。后面的一部分同理可得,输出文件file1中,在file2中没有的内容。方法二:使用comm
comm -3file1 file2
这个方法看起来最简单。命令comm的功能就是,逐行比较两个排好序的文件,默认输出有三列:只在file1中有的行、只在file2中有的行、在file1和file2中共有的行。有参数-1 -2 -3,分别来抑制输出对应的列。例如在我们的方法二中,实用-3参数,不输出file1和file2中共有的部分。即能达到我们本文的目的。
删除历史镜像脚本文章来源:https://www.toymoban.com/news/detail-540026.html
#/bin/bash
ID=/home/crictl/id
IMAGE=/home/crictl/images
IMAGES_HISTORY=/home/crictl/images_history
crictl ps | awk '{print $2}' | grep -v 'ID' >$ID
crictl images | awk '{print $3}' | grep -v 'IMAGE' >$IMAGE
grep -v -f $ID $IMAGE > $IMAGES_HISTORY
crictl rmi `cat $IMAGES_HISTORY`
0 0 * * 6 sh /home/crictl/crictl.sh >/dev/null 2>&1
四.镜像管理常用命令文章来源地址https://www.toymoban.com/news/detail-540026.html
批量停止容器
crictl ps | awk '{print $1}' | xargs crictl stop
等价于
crictl stop $(crictl ps | awk '{print $1}')
批量删除容器
crictl ps -a | awk '{print $1}' | xargs crictl rm
批量删除匹配到的容器ID
crictl ps -a | grep CONTAINER ID | awk '{print $1}' | xargs crictl rm
批量删除匹配到的容器名
crictl ps -a | grep NAME | awk '{print $1}' | xargs crictl rm
批量删除镜像
crictl images | awk '{print $3}' | xargs crictl rmi
批量删除匹配到的镜像ID
crictl images | grep IMAGE ID | awk '{print $3}' | xargs crictl rmi
批量删除匹配到的镜像名
crictl images | grep IMAGE | awk '{print $3}' | xargs crictl rmi
到了这里,关于ctr-k8s镜像管理命令,将k8s正在使用的镜像推送仓库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!