docker鏡像在containerd為底座的k8s中使用

docker鏡像和container鏡像為什么不能直接共通

Docker 鏡像和 containerd 鏡像本質上格式兼容(都遵循 OCI 鏡像規范),但默認情況下 “不能互相識別”,核心原因是存儲位置、命名空間和工具鏈的隔離,而非鏡像格式本身的差異。具體來說:

一、核心原因:存儲與工具鏈的隔離

1. 鏡像存儲位置不同

Docker 和 containerd 會將鏡像存儲在各自獨立的目錄中,默認情況下不會共享存儲:

Docker:鏡像存儲在 /var/lib/docker/overlay2(或 /var/lib/docker/image),由 Docker 自身的存儲驅動(如 overlay2)管理。

containerd:鏡像存儲在 /var/lib/containerd/io.containerd.content.v1.content,由 containerd 的存儲系統管理。

即使是同一個鏡像(如 nginx:latest),Docker 拉取后會存在于 Docker 的存儲目錄,containerd 拉取后會存在于 containerd 的存儲目錄,兩者互不可見。

2. containerd 的 “命名空間” 隔離

containerd 引入了內部命名空間(namespace) 機制,用于隔離不同場景的鏡像 / 容器(類似 K8s 的命名空間,但作用于 containerd 內部):

默認情況下,Docker 鏡像對應的 containerd 命名空間是 moby(Docker 專屬)。
K8s 中使用的 containerd 命名空間是 k8s.io(K8s 專屬)。

crictl(K8s 配套的容器工具)默認只查詢 k8s.io 命名空間的鏡像,而 Docker 拉取的鏡像在 moby 命名空間,因此 crictl 看不到 Docker 鏡像。

3. 工具鏈的 “視角” 不同

Docker 和 containerd 的命令行工具(docker、crictl、nerdctl)默認只訪問自己管理的存儲和命名空間:

docker images 只會顯示 Docker 存儲目錄 + moby 命名空間的鏡像。

crictl images 只會顯示 containerd 存儲目錄 + k8s.io 命名空間的鏡像。

即使是同一個鏡像,只要不在工具默認的 “存儲 + 命名空間” 范圍內,就無法被識別。

具體操作

說明之后,實際上鏡像是可以直接識別的,問題主要是存儲路徑和命名空間的問題,我們只需要注意下這兩個問題就行,并且操作起來很簡單。

首先查看docker鏡像

docker images

在這里插入圖片描述
把其中docker.1ms.run/tensorflow/tensorflow:1.15.5-gpu-py3這個docker鏡像改成container鏡像

先導出成tar包

sudo docker save -o tensorflow-gpu.tar docker.1ms.run/tensorflow/tensorflow:1.15.5-gpu-py3

然后使用ctr命令指定命名空間導入

sudo ctr -n k8s.io images import tensorflow-gpu.tar

導入成功后的提示
在這里插入圖片描述
最后通過crictl查看被k8s識別到的鏡像

crictl images

在這里插入圖片描述
這樣就完成了鏡像的使用,很簡單

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/94765.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/94765.shtml
英文地址,請注明出處:http://en.pswp.cn/web/94765.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java-反射機制

在 Java 編程中,“反射” 是一個貫穿基礎與進階的核心概念,它允許程序在運行時動態獲取類的結構、調用方法、操作屬性,甚至創建對象 —— 無需在編譯期明確知道類的具體信息。一、反射是什么?首先明確一個關鍵定義:Jav…

ARM相關的基礎概念和寄存器

目錄 1、機器碼 2、匯編指令 3、匯編指令集 4、架構 5、內核(CPU中的核心) 6、處理器 7、復雜指令集和精簡指令集 7.1復雜指令集 7.2精簡指令集 7.3修改 8、內核中的寄存器阻值 8.1溜達存儲類型 8.2、AMR處理器(內核&#xff09…

PPT處理控件Aspose.Slides教程:在 C# 中將 PPTX 轉換為 Markdown

將您的PowerPoint幻燈片轉換為Markdown格式,使其兼容 AI 技術。在這個人工智能驅動的時代,GPT和Claude等大模型能夠讀取和生成基于 Markdown 的內容。此外,Markdown 還可用于博客文章和文檔。因此,作為一名 .NET 開發人員&#xf…

Python 多進程(multiprocessing)

文章目錄1. 多進程概述1.1. 多進程的概念1.2. 多進程注意事項2. 進程調用方式2.1. Process 類2.1.1. 構造方法2.1.2. 實例方法2.1.3. 屬性2.2. 面向過程2.3. 面向對象3. 進程間通訊3.1. Queues3.2. Pipes3.3. Managers(進行共享數據)4. 進程同步5. 進程池…

推薦系統王樹森(五)重排多樣性提升

重排01:物品相似性的度量、提升多樣性的方法_嗶哩嗶哩_bilibili github-PPT 前面的討論中提到 在鏈路的最后進行重排,重排要插入廣告和運營筆記,還要做規則打散,提高推薦的豐富性,比如說一個人特別愛看足球&#xff…

Axios多實例封裝

Axios多實例封裝方案 我將為您提供一個完整的Axios多實例封裝方案,包含基礎封裝、多實例管理和使用示例。 設計思路 創建基礎axios實例封裝,支持請求/響應攔截器實現多實例管理器,支持不同API端點配置提供統一的錯誤處理機制支持請求取消功…

為量化從業者提供免費穩定的股票數據源:免費股票數據API獲取實時數據、歷史數據與技術指標(含多語言代碼指南)實例代碼演示與API文檔說明

? 近年來,股票量化分析因其科學、系統的研究方法,日益成為市場熱點。而進入這一領域的首要步驟,正是獲取全面、準確的股票數據——無論是實時交易行情、歷史走勢記錄,還是企業財務與基本面信息,都是支撐量化策略的核心…

[Sync_ai_vid] UNet模型 | 音頻特征提取器(Whisper)

第2章:LatentSync UNet模型 在第1章:唇形同步推理流程中,我們了解到唇形同步推理流程如同電影導演,協調各"專家模塊"生成完美唇形同步視頻。 本章將深入解析這個"工作室"中最核心的專家——LatentSync UNet…

工業級TF卡NAND + 北京君正 + Rk瑞芯微的應用

目錄前言一:操作CS創世 SD NAND的常用命令1.查看SD設備2.掛載分區3.卸載分區4.分區管理5.格式化分區6.簡單讀寫二:SD底層協議簡要介紹三:對CS創世 SD NAND進行讀寫操作的三大方式1. 使用dd命令2. 使用塊設備的標準接口3. 使用ioctl產生系統調…

深入解析Java并發編程與單例模式

目錄 一、調度(四) 1.隨機調度大環境 二、鎖(二) 1.位置 2.無鎖阻塞 3.重入鎖 4.連續鎖 4.1措施 三、線程方法(二) 1.wait 2.notify 3.wait-notify指位后移 3.1可能時再檢查 3.1.1join(二) 3.1.1.1可能時再檢查死亡 四、單例模式 1.實現 1.1private構造器 1…

java通過redis簡單實現分布式鎖

目錄 一、簡介 二、代碼實現 1、maven添加依賴 2、核心邏輯代碼 3、使用方式 三、總結 一、簡介 我們知道在Java中可以通過關鍵字synchronized來防止并發引起的問題,而分布式中就需要考慮分布式鎖了,今天來講一個比較簡單的實現,通過re…

網絡編程--TCP/UDP Socket套接字

網絡編程 程序員主要操作應用層和傳輸層來實現網絡編程,也就是自己寫一個程序,讓這個程序可以使用網絡來通信,這個程序屬于應用層,實現通訊就需要獲取到傳輸層提供的服務 這就需要使用傳輸層提供的api UDP: 無連接,不可…

claude-code訂閱方案

Claude Code 訂閱方案對比 編寫日期:2025 年 08 月 20 日 🏷? 專業版 Pro ($20/月,$200/年) 主要特性 可用模型:Claude Sonnet 4(Claude Opus 4成本太高,謹慎選擇)適用場景:適合輕度…

146. LRU緩存

題目: 請你設計并實現一個滿足 LRU (最近最少使用) 緩存 約束的數據結構。 實現 LRUCache 類: LRUCache(int capacity) 以 正整數 作為容量 capacity 初始化 LRU 緩存 int get(int key) 如果關鍵字 key 存在于緩存中,則返回關鍵字的值&#x…

第二十節:3D文本渲染 - 字體幾何體生成與特效

第二十節:3D文本渲染 - 字體幾何體生成與特效 TextGeometry深度解析與高級文字效果實現1. 核心概念解析 1.1 3D文字渲染技術對比技術原理優點缺點TextGeometry將字體輪廓轉換為3D網格真實3D效果,支持材質性能開銷大,內存占用高Canvas紋理將文…

zzz‘sJava知識點概括總結

類型轉化 字符串&#xff1a;c語言&#xff1a;char Java&#xff1a;string 表達式值的類型由最高類型決定&#xff1a; 取值范圍&#xff1a;byte<short<int<long<float<double&#xff08;且運算時byte和short都是轉化為int類型進行計算防止數據溢出&…

SONiC 之 Testbed(2)Ansible

Ansible 是一款由 Red Hat 主導開發的 開源自動化工具&#xff0c;專注于 配置管理、應用部署、任務編排和IT自動化。它基于 無代理&#xff08;Agentless&#xff09;架構&#xff0c;通過 SSH&#xff08;默認&#xff09;或 WinRM 協議與目標設備通信&#xff0c;無需在被控…

瑞芯微RK3568與君正X2600e平臺Linux系統CS創世SD NAND應用全解析與驅動架構詳解

前言 今天就瑞芯微平臺和北京君正平臺下的linux系統中關于CS創世 SD NAND的使用做一些經驗的分享&#xff0c;如有不正&#xff0c;請批評指正&#xff1b; 采用的開發板是RK3568和x2600e&#xff0c;ubuntu版本是20.04&#xff0c;交叉編譯工具鏈是aarch64-linux-gnu-和mips…

深入解析 Flink Function

RichFunctionFunction只是個標記接口public interface Function extends java.io.Serializable {}RichFunction 的核心語義是為用戶定義的函數&#xff08;UDF&#xff09;提供生命周期管理和運行時上下文訪問的能力。任何一個普通的 Flink Function 接口&#xff08;例如 MapF…

JMeter —— 壓力測試

目錄 常用的性能指標 一、吞吐量類指標 二、響應時間類指標 三、資源利用率指標 JMeter 一、JMeter 簡介 二.下載安裝JMeter&#xff1a; 三.如何使用JMeter&#xff1a; 壓力測試考察當前軟硬件環境下系統所能承受的最大負荷并幫助找出系統瓶頸所在。壓測都是為了系統…