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"
相关推荐
螺蛳粉 螺蛳粉12 小时前
第 02 篇:镜像分层与 containerd 2.x 实战:SystemdCgroup 与 pause 镜像配置踩坑(底座认知 02)
docker·云原生·容器·kubernetes·etcd·containerd·kube-apiserver
小白的码BUG之路15 小时前
K8s -- 搭建过程中经常遇到的问题
云原生·容器·kubernetes
螺蛳粉 螺蛳粉16 小时前
第 03 篇:为什么 K8s 的最小调度单元是 Pod 而不是容器:pause 容器与边车模式(底座认知 03)
docker·云原生·容器·kubernetes·etcd·运维排障·kube-apiserver
艾伦_耶格宇16 小时前
【kubernetes - 1.28版本】-9 K8S-dashbord可视化界面
云原生·容器·kubernetes
无人生还别怕1 天前
如何搭建k8s服务(containerd部署)
linux·云原生·容器·kubernetes·openanolisos
fb_123451 天前
从探针到权限:一篇吃透 Kubernetes 健康检查、RBAC 认证授权与 Dashboard 可视化管理
云原生·容器·kubernetes
mengge.cloud2 天前
10-28-Kubernetes健康检查认证授权与Dashboard
云原生·容器·kubernetes
SatanII2 天前
Kubernetes 认证与授权详解:守护集群API访问安全
安全·贪心算法·kubernetes
闲云野鹤在人间2 天前
头秃修炼手册:StorageClass+StatefulSet+ETCD 全套渡劫笔记
linux·数据库·笔记·云原生·kubernetes·etcd
艾伦_耶格宇2 天前
【kubernetes - 1.28版本】-7 K8S命令
云原生·容器·kubernetes