首页 > 其他分享 >容器引擎说明——Contianerd与Docker的区别以及Containerd换源操作

容器引擎说明——Contianerd与Docker的区别以及Containerd换源操作

时间:2024-08-15 13:38:59浏览次数:5  
标签:容器 镜像 -- Containerd 换源 containerd Contianerd docker

容器引擎是Kubernetes最重要的组件之一,负责管理镜像和容器的生命周期。Kubelet通过Container Runtime Interface (CRI) 与容器引擎交互,以管理镜像和容器。

表1 容器引擎对比

Containerd和Docker组件常用命令对比

表2 镜像相关功能

表3 容器相关功能

表4 Pod相关功能

说明
Containerd创建并启动的容器会被kubelet立即删除,不支持暂停、恢复、重启、重命名、等待容器,Containerd不具备docker构建、导入、导出、比较、推送、查找、打标签镜像的能力,Containerd不支持复制文件,可通过修改containerd的配置文件实现登录镜像仓库。

调用链区别

  • Docker(Kubernetes 1.23及以下版本):
    kubelet --> docker shim (在kubelet 进程中) --> docker --> containerd

  • Docker(Kubernetes 1.24及以上版本社区方案):
    kubelet --> cri-dockerd (kubelet使用cri接口对接cri-dockerd) --> docker --> containerd

  • Containerd:
    kubelet --> cri plugin(在containerd进程中) --> containerd

其中Docker虽增加了swarm cluster、docker build、docker API等功能,但也会引入一些bug,并且与Containerd相比,多了一层调用,因此Containerd被认为更加节省资源且更安全。

Contianerd换源

Containerd通过在启动时指定一个配置文件夹,使后续所有镜像仓库相关的配置都可以在里面热加载,无需重启Containerd。

  1. 如果/etc/containerd/config.toml配置文件中已包含config_path配置(例如"/etc/containerd/cert.d"),则无需执行此步骤;如果不存在,您可以在配置文件中添加以下config_path并重启Containerd使更改生效。
config_path = "/etc/containerd/certs.d"
  1. 在步骤一中指定的config_path路径中创建docker.io/hosts.toml文件。
    在文件中写入如下配置。
server = "https://registry-1.docker.io"

[host."$(镜像加速器地址,如https://xxx.mirror.aliyuncs.com)"]
  capabilities = ["pull", "resolve", "push"]

镜像加速配置:

# docker hub镜像加速
mkdir -p /etc/containerd/certs.d/docker.io
cat > /etc/containerd/certs.d/docker.io/hosts.toml << EOF
server = "https://docker.io"
[host."https://dockerproxy.com"]
  capabilities = ["pull", "resolve"]

[host."https://docker.m.daocloud.io"]
  capabilities = ["pull", "resolve"]

[host."https://reg-mirror.qiniu.com"]
  capabilities = ["pull", "resolve"]

[host."https://registry.docker-cn.com"]
  capabilities = ["pull", "resolve"]

[host."http://hub-mirror.c.163.com"]
  capabilities = ["pull", "resolve"]

EOF

# registry.k8s.io镜像加速
mkdir -p /etc/containerd/certs.d/registry.k8s.io
tee /etc/containerd/certs.d/registry.k8s.io/hosts.toml << 'EOF'
server = "https://registry.k8s.io"

[host."https://k8s.m.daocloud.io"]
  capabilities = ["pull", "resolve", "push"]
EOF

# docker.elastic.co镜像加速
mkdir -p /etc/containerd/certs.d/docker.elastic.co
tee /etc/containerd/certs.d/docker.elastic.co/hosts.toml << 'EOF'
server = "https://docker.elastic.co"

[host."https://elastic.m.daocloud.io"]
  capabilities = ["pull", "resolve", "push"]
EOF

# gcr.io镜像加速
mkdir -p /etc/containerd/certs.d/gcr.io
tee /etc/containerd/certs.d/gcr.io/hosts.toml << 'EOF'
server = "https://gcr.io"

[host."https://gcr.m.daocloud.io"]
  capabilities = ["pull", "resolve", "push"]
EOF

# ghcr.io镜像加速
mkdir -p /etc/containerd/certs.d/ghcr.io
tee /etc/containerd/certs.d/ghcr.io/hosts.toml << 'EOF'
server = "https://ghcr.io"

[host."https://ghcr.m.daocloud.io"]
  capabilities = ["pull", "resolve", "push"]
EOF

# k8s.gcr.io镜像加速
mkdir -p /etc/containerd/certs.d/k8s.gcr.io
tee /etc/containerd/certs.d/k8s.gcr.io/hosts.toml << 'EOF'
server = "https://k8s.gcr.io"

[host."https://k8s-gcr.m.daocloud.io"]
  capabilities = ["pull", "resolve", "push"]
EOF

# mcr.m.daocloud.io镜像加速
mkdir -p /etc/containerd/certs.d/mcr.microsoft.com
tee /etc/containerd/certs.d/mcr.microsoft.com/hosts.toml << 'EOF'
server = "https://mcr.microsoft.com"

[host."https://mcr.m.daocloud.io"]
  capabilities = ["pull", "resolve", "push"]
EOF

# nvcr.io镜像加速
mkdir -p /etc/containerd/certs.d/nvcr.io
tee /etc/containerd/certs.d/nvcr.io/hosts.toml << 'EOF'
server = "https://nvcr.io"

[host."https://nvcr.m.daocloud.io"]
  capabilities = ["pull", "resolve", "push"]
EOF

# quay.io镜像加速
mkdir -p /etc/containerd/certs.d/quay.io
tee /etc/containerd/certs.d/quay.io/hosts.toml << 'EOF'
server = "https://quay.io"

[host."https://quay.m.daocloud.io"]
  capabilities = ["pull", "resolve", "push"]
EOF

# registry.jujucharms.com镜像加速
mkdir -p /etc/containerd/certs.d/registry.jujucharms.com
tee /etc/containerd/certs.d/registry.jujucharms.com/hosts.toml << 'EOF'
server = "https://registry.jujucharms.com"

[host."https://jujucharms.m.daocloud.io"]
  capabilities = ["pull", "resolve", "push"]
EOF

# rocks.canonical.com镜像加速
mkdir -p /etc/containerd/certs.d/rocks.canonical.com
tee /etc/containerd/certs.d/rocks.canonical.com/hosts.toml << 'EOF'
server = "https://rocks.canonical.com"

[host."https://rocks-canonical.m.daocloud.io"]
  capabilities = ["pull", "resolve", "push"]
EOF

参考:

  1. https://support.huaweicloud.com/usermanual-cce/cce_10_0462.html
  2. https://help.aliyun.com/zh/acr/user-guide/accelerate-the-pulls-of-docker-official-images?spm=5176.28426678.J_HeJR_wZokYt378dwP-lLl.11.55d25181Z6Gz74&scm=20140722.S_help@@文档@@60750.S_BB2@bl+RQW@ag0+BB1@ag0+os0.ID_60750-RL_etccontainerd-LOC_searchUNDhelpdocUNDitem-OR_ser-V_3-P0_0
  3. https://blog.csdn.net/IOT_AI/article/details/131975562

标签:容器,镜像,--,Containerd,换源,containerd,Contianerd,docker
From: https://www.cnblogs.com/LMFrank/p/18360718

相关文章

  • containerd配置镜像加速器
    目录Containerd配置镜像加速器1.旧版本配置方法1.1生成containerd配置文件1.2修改配置文件2.新版本配置方法2.1创建目录2.2配置加速器3.测试拉取镜像Containerd配置镜像加速器为什么要给containerd配置镜像加速器?因为k8s1.24以后的容器运行时是containerd,也就是说k8s会......
  • 一文搞定Ubuntu服务器深度学习环境配置(超详细包括换源)
    1.首先配置zshZsh(Zshell)是一种功能强大的命令行解释器,较Bash(BourneAgainShell)有以下优势:强大的自动补全:Zsh不仅支持命令和文件的自动补全,还支持参数、路径以及Git命令的补全,使操作更高效。灵活的定制:Zsh允许用户灵活自定义提示符,显示如时间、Git状态等信息。使用O......
  • 源是什么、怎么换源、Centos7停止维护后如何更换源
    目录源的介绍与更换1.什么是软件源?2.为什么要更换软件源?2.1提高下载速度:2.2获得最新的软件版本:2.3解决源不可用或不稳定的问题:2.4获取特定的软件包:2.5系统兼容性和需求:3.如何更换软件源:Ubuntu和CentOS的步骤为例3.1Ubuntu3.1.1备份当前的源列表3.1.2编辑源列表文件......
  • containerd推送+kaniko build
    containerd推送+kanikobuild配置简述前置条件设置清华yum源https://mirrors.tuna.tsinghua.edu.cn/help/centos/下载所有安装包1.kubernetes1.25.+的二进制包https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.25.mdwgethttps://dl.k8s.io/v1......
  • 配置 Containerd 在 harbor 私有仓库拉取镜像
    unexpectedstatuscode[manifests1.28]:401Unauthorized【问题描述】下载Harbor中的私有镜像时报错:[root@lidabaiapp]#ctr-nharbor.lidabaiimagespull192.168.2.22:443/lidabai/busybox:1.28-kctr:failedtoresolvereference"192.168.2.22:443/lidabai/busyb......
  • Rust换源:使用Cargo国内镜像
    Rust换源:使用Cargo国内镜像Rust是一门现代化的系统编程语言,而Cargo则是Rust的官方包管理工具。在进行Rust项目开发时,由于网络原因,从Crates.io下载依赖可能会很慢。为了提高开发效率,我们可以配置Cargo使用国内的镜像源,以加速包的下载和构建过程。配置Cargo国内镜像的步骤步骤一......
  • 记录 OpenWrt 执行 opkg update 命令报错 Failed to download,但是换源无效且源用浏览
    记录OpenWrt执行opkgupdate命令报错Failedtodownload,但是换源无效且源用浏览器可访问的解决方案解决方法首先给出解决方法:)网络-->接口-->WAN-->编辑-->高级设置取消勾选“自动获取DNS服务器”-->在使用自定义的DNS服务器一栏中添加并输入可用的DNS地址。......
  • 为了Python换源,我开发了一个库「pipco 0.0.19」
    你好,我是悦创。有时候某个源又出问题,或者频繁切换源。我就想开发一个库可以切换的,链接:https://pypi.org/project/pipco/库是开源的,可以自行学习或者使用。使用方法:安装pipinstallpipco查看帮助pcohelp当你需要使用Python时,Pip是一个非常重要的工具,它用于安......
  • K8S 中的 CRI、OCI、CRI shim、containerd
    哈喽大家好,我是咸鱼。好久没发文了,最近这段时间都在学K8S。不知道大家是不是和咸鱼一样,刚开始学K8S、Docker的时候,往往被CRI、OCI、CRIshim、containerd这些名词搞得晕乎乎的,不清楚它们到底是干什么用的。所以今天,咸鱼打算借这篇文章来解释一下这些名词,帮助大家理清它们的......
  • containerd 容器基础环境组件的搭建
    1基础环境说明(1)本次所有部署软件版本说明软件名称版本号操作系统内核(后续升级为lt-5.4.278)CentOS7.9.2009(3.10.0-1160.el7)1c1GB20GBCentOS-7-x86_64-Minimal-2009.isocontainerdv1.6.6cfsslv1.6.1cniv1.1.1crictlv1.24.2nerdctl1.7.6......