讲师中心 微信公众号
AI工具推荐 视频效率加速

如何通过DockerRuntime切换不同的容器运行时

小明姑娘_6002

小明姑娘_6002

发布时间:2026-04-06 16:43:19

|

550人浏览过

|

来源于php中文网

原创

Kubernetes 自 v1.20 起弃用 Docker,v1.24 彻底移除 dockershim,因此无法通过 DockerRuntime 切换运行时;Docker 不符合 CRI 标准,kubelet 不再识别 docker:// 协议,也不存在 DockerRuntime 配置项。

如何通过dockerruntime切换不同的容器运行时

在 Kubernetes 中,Docker 已于 v1.20 版本起被正式弃用(dockershim 移除),因此无法再通过 DockerRuntime 切换容器运行时。Kubernetes 不再原生支持 Docker 作为运行时,而是要求使用符合 CRI(Container Runtime Interface)标准的运行时,如 containerd、CRI-O 等。

为什么不能“通过 DockerRuntime 切换”?

Docker 本身不是 CRI 运行时,它通过 dockershim(一个适配层)与 kubelet 通信。该 shim 已在 v1.24 及以后版本中完全移除。这意味着:

  • Kubernetes 不再识别 docker:// 运行时协议
  • 没有名为 DockerRuntime 的合法运行时配置项(如 runtimeClass 或 kubelet --container-runtime 参数中不存在该值)
  • 所谓“切换到 DockerRuntime”实际是误解——Docker 不再是 Kubernetes 支持的运行时选项

正确切换容器运行时的方法

要使用不同运行时(如 containerd 或 CRI-O),需在节点层面配置 kubelet,并确保运行时已安装且启用 CRI 接口:

  • 安装并启动目标运行时:例如安装 containerd 并确认其监听 /run/containerd/containerd.sock
  • 配置 kubelet 启动参数:
    • 设置 --container-runtime-endpoint=unix:///run/containerd/containerd.sock
    • (可选)指定 --container-runtime=remote(默认值,表示使用远程 CRI 运行时)
  • 重启 kubelet:使配置生效,kubelet 将通过 CRI 与 containerd 通信
  • 验证运行时类型:执行 kubectl get nodes -o wide,VERSION 列旁的 CONTAINER-RUNTIME 字段会显示类似 containerd://1.7.2

如何为 Pod 指定不同运行时(如 containerd vs CRI-O)?

需结合 RuntimeClass 资源实现运行时绑定:

  • 先在节点上部署对应运行时(如 node-A 装 containerd,node-B 装 CRI-O)
  • 为每种运行时创建 RuntimeClass 对象,指定 handler 和对应节点 label
  • 在 Pod spec 中添加:
    runtimeClassName: my-containerd-handler
    kubelet 将根据 handler 查找匹配的 RuntimeClass,并调度到装有对应运行时的节点

常见误区澄清

以下操作不会**让 Kubernetes “切换回 DockerRuntime”:

  • 安装 Docker CE 并启动 dockerd —— 它不提供 CRI 接口,kubelet 无法调用
  • 修改 kubelet --runtime-cgroups 或 --docker 参数 —— 这些参数已在新版 kubelet 中删除
  • 在 Pod 中写 runtime: docker —— 该字段非法,API Server 会拒绝

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

3068

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

4389

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3689

2025.12.29

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

386

2026.01.19

go中interface用法
go中interface用法

本专题整合了go语言中int相关内容,阅读专题下面的文章了解更多详细内容。

3330

2025.09.10

k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

665

2023.07.24

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

4659

2024.04.08

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

5557

2024.04.08

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

0

2026.09.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn