k8s实用脚本

1 将docker管理的镜像传递给k8s使用

bash 复制代码
#!/bin/bash

# docker-to-ctr.sh
# 将本地所有 Docker 镜像导出为 tar 并存储到指定目录
# 若目标 tar 已存在则跳过

DIR="/home/hanwang/docker_images"

set -e

# 创建存储目录
mkdir -p "$DIR"

echo "🔍 获取本地 Docker 镜像列表..."
IMAGES=$(docker images --format "{{.Repository}}:{{.Tag}}" | grep -v "<none>")

if [ -z "$IMAGES" ]; then
  echo "❌ 未找到有效的 Docker 镜像(排除 <none> 标签)"
  exit 1
fi

COUNT=$(echo "$IMAGES" | wc -l)
echo "📦 共找到 ${COUNT} 个镜像,开始保存到 ${DIR} ..."

for img in $IMAGES; do
  echo "➡️  处理镜像: $img"
  
  # 目标 tar 文件名:将仓库/标签中的特殊字符替换为下划线
  TARGET_TAR="${DIR}/$(echo "$img" | tr '/' '_' | tr ':' '_').tar"

  if [ -f "$TARGET_TAR" ]; then
    echo "⏭️  已存在:$TARGET_TAR,跳过保存"
    continue
  fi

  echo "💾 保存镜像为 tar:$TARGET_TAR"
  docker save "$img" -o "$TARGET_TAR"
  # 导入到 containerd 的 k8s.io 命名空间(Kubernetes 使用此命名空间)
  ctr -n k8s.io images import --no-unpack "$TARGET_TAR"
  
  echo "✅ 镜像 $img 已导入 containerd"
  echo "✅ 已保存:$TARGET_TAR"
done

echo "🎉 所有镜像保存完成!"
echo "📂 存储目录:$DIR"
相关推荐
bukeyiwanshui17 小时前
20260626 k8sControllers介绍
云原生·容器·kubernetes
能有时光18 小时前
] K8s 核心组件使用指南
云原生·容器·kubernetes
云烟成雨TD19 小时前
Kubernetes 系列【13】控制器:可视化操作 Deployment
云原生·容器·kubernetes
运维老郭1 天前
【K8s运维实战】Kubernetes临时存储卷实战:emptyDir核心用法与gitRepo弃用迁移指南
运维·云原生·kubernetes
gs801402 天前
记一次多 Agent 架构在单节点 K8s 触发的 PID 耗尽与 Pod 驱逐(Evicted)大摸排
容器·架构·kubernetes
bukeyiwanshui2 天前
20260701 k8s Metric Server
容器·贪心算法·kubernetes
Zhu7582 天前
在k8s集群部署ApacheHadoop单节点单数据副本
云原生·容器·kubernetes
摇滚侠2 天前
云原生 Java 架构师的第一课 K8s+Docker+KubeSphere+DevOps 51-60
java·云原生·kubernetes
bukeyiwanshui2 天前
20260703 K8s ECShop商城项目
云原生·容器·kubernetes