Leo Zhang
菩提本无树,明镜亦非台!
 

# 查看容器

# 查看活跃容器
docker ps
 
# 查看所有容器(包括已关闭)
docker ps -a
 
# 筛选指定名称和状态的容器
docker ps -q --filter name=.*bingohuang.* --filter status=exited
 
# 设置容器自启动
docker container update --restart=always registry-srv

 

# 清除镜像和容器

# 删除已关闭容器
docker rm $(docker ps -aq -f status=exited)
 
# 删除无tag镜像
docker rmi $(docker images | grep '<none>' | awk '{print $3}')
 
# 删除后4个镜像
docker rmi -f `docker images | awk '{print $3}'| tail -n +4`
 
# 删除前9个镜像
docker rmi -f $(docker images -q | head -n 9)

 

# 查看镜像

# 查看镜像
docker images
 
# 查看镜像详细构建历史
docker history --no-trunc registry.cn-shanghai.aliyuncs.com/leozhanggg/prometheus/alertmanager:v0.18.0

 

# 镜像导入导出

# 导入指定目录所有镜像
for image in `ls`; do docker load -i $image; done
 
# 导出非gpu所有镜像(整包)
docker save -o userPublic-nogpu.tgz $(docker images | grep -vE 'TAG|gpu' | awk '{print $1":"$2}')

# 导出非gpu所有镜像(分包)
images=$(docker images | grep -vE 'TAG|gpu' | awk '{print $1":"$2}')
for image in $images; do docker save -o $(echo $image | awk -F/ '{print $3".tar"}') $image; done

 

# 排查磁盘占用较大的容器

# 排查磁盘占用较大的容器
du -sh /var/lib/docker/containers/* |grep G
 
# 通过容器id快速定位k8s pod
docker inspect --format='{{index .Config.Labels "io.kubernetes.pod.name"}}' 4102005ae5e5

 

# 批量替换镜像仓库

# 基于项目文件
repo=registry.xuelangyun.com/shuzhi-coreos
for each in `grep -iR "image: " .|awk '{print $1"|"$2"|"$3}'`; do
  file=`echo $each | cut -d"|" -f1 | sed 's/://'`
  image=`echo $each | cut -d"|" -f3`
  image_new=`echo $repo/${image##*/}`
  echo "sed 's#$image#$image_new#g' $file
  docker pull $image
  docker tag $image $image_new
  docker push $image_new" >>update_image.sh
done


 # 基于本地仓库
 repo=registry.weichai.com
 for each in `docker images |grep -v REPOSITORY | awk '{print $1":"$2}'`; do 
   docker tag $each $repo/${each#*/}
   docker push $repo/${each#*/}
 done

 

posted on 2022-09-06 09:54  LeoZhanggg  阅读(175)  评论(0)    收藏  举报