安装containerd

news2024/10/6 22:26:18

containerd文档地址

containerd介绍

  • 早在2016年3月,Docker 1.11的Docker Engine里就包合了containerd,而现在则是把containerd从Docker Engine里彻底剥离出来, 为一个独立的开源项目独立发展,目标是提供一个更加开放、稳定的容器运行基础没施。和原先包合在Docker Engine里containerd相比,独立的containerd将具有更多的功能,可以涵盖整个容品运行时管理的所有需求。
  • containerd并不是直接面向最终用户的,而是主要用于集成到更上层的系统里,比如Swarm, Kubernetes, Mesos等容器编排系统。
  • 每个containerd只负责一台机器,Pul镜像,对容器的操作(启动、停止等),网络,存储都是由containerd完成。具体运行容器由runC 负责,实际上只要是符合OCI规范的容器都可以支持。
  • containerd以Daemon的形式运行在系统上,通过暴露底层的gRPC API,上层系统可以通过
    这些AP/管理机器上的容器。
  • 对于容器编排服务来说,运行时只需要使用containerd+runC,更加轻量,容易管理
  • 独立之后containerd的特性演进可以和Docker Ergine分开,专注容器运行时管理,可以更稳定,containerd是由Docker开发的容器运行时,已经在生产环境中得到了广泛的验证和应用。它经过长时间的发展和优化,可以满足大规模集群的运行需求。
  • 13年docker把核心技术 libcontainer捐献给OCI 并改名为runC
  • 15年docker把核心依赖containerd 捐献给CNCF
  • 20年k8s1.20之后不再支持docker,因为还需要维护一套docker-shim(垫片)去从k8s容器运行时接口(CRI)转化翻译为docker的API
  • 很多的容器管理工具都希望能被k8s用到,所以k8s制定了标准化的CRI,只要符合都能用
  • containerd可以无缝衔接k8s,所以k8s之后的容器运行时(CRI)就是containerd
  • containerd 采用C/S架构
  • containerd 从容器启动 停止 删除的时间都很快于其他

YUM方式安装

wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y containerd.io
systemctl enable containerd --now
#验证
ctr version
ctr images ls
ctr containerd ls

二进制安装(找名字长的cri-containerd-cni-xxx)

1.下载安装包

release

Containerd有两种安装包:
第一种是 containerd-xxx,这种包用于单机测试没问题,不包含runC,需要提前安装。
第二种是 cri-containerd-cni-xxxx,包含runc和k8s里的所需要的相关文件。k8s集群里需要用到此包。虽然包含runC,但是依赖系统中的seccomp(安全计算模式,是一种限制容器调用系统资源的模式。)

wget https://gh.rainbond.cc/https://github.com/containerd/containerd/releases/download/v1.6.27/cri-containerd-cni-1.6.27-linux-amd64.tar.gz
tar -xzvf cri-containerd-cni-1.6.27-linux-amd64.tar.gz
1.1解压如下所示三个目录

解压后内容如下

查看etc目录,主要为containerd服务管理配置文件及cni虚拟网卡配置文件
查看opt目录,主要为gce环境中使用containerd配置文件及cni插件
查看usr目录,主要为containerd运行时文件,包含runc

2.移动下载的二进制到指定位置

2.1 containerd
cp usr/local/bin/containerd /usr/local/bin/ 
cp etc/systemd/system/containerd.service /usr/lib/systemd/system/containerd.service
#建议usr/local/bin/* 都复制到/usr/local/bin/ ,不然容器启动的时候会找不到containerd-shim- runc-v2(垫片),这也就是为什么下面说runC真正的去运行容器

/etc/systemd/system/ 目录中的服务文件通常是管理员自定义的或者针对特定需求定制的服务,而
/usr/lib/systemd/system/ 目录中的服务文件则是由软件包提供的默认服务文件。

2.2生成containerd配置文件

这个配置文件中注意沙箱的镜像和镜像仓库

containerd --help
mkdir /etc/containerd
containerd config default > /etc/containerd/config.toml=
systemctl enable containerd --now

单独安装RUNC

真正的去运行容器的是runC

由于二进制包中提供的runC默认需要系统中安装seccomp支持,需要单独安装,且不同版本runC对seccomp版本要求一致,所以建议单独下载runC 二进制包进行安装,里面包含了seccomp模块支持。

release

 wget https://gh.rainbond.cc/https://github.com/opencontainers/runc/releases/download/v1.1.12/runc.amd64
 #install: 这是一个Unix命令,用于复制文件并设置其属性
 install -m 755 runc.amd64 /usr/local/sbin/runc
 runc -v

复制ctr命令

cp usr/local/bin/ctr /usr/bin/
#查看containerd版本
ctr version

containerd容器镜像管理

  • docker使用docker images命令管理镜像
  • 单机containerd使用ctr images命令管理镜像,containerd本身的CLI工具
  • k8s中containerd使用crictl images命令管理镜像Kubernetes社区的专用CLI工具
ctr i ls
# 引用地址REF 类型TYPE DIGEST描述哈希值 大小SIZE 支持的平台PLATFROMS 标签LABELS
ctr i pull --all-platforms docker.io/library/nginx:alpine
#因为containerd没有像Docker CLI那样的默认仓库设置,下载镜像需要指定完整---仓库地址/命令空间/镜像名:tag
ctr i pull --platforms linux/amd64 docker.io/library/nginx:alpine
ctr i rm/remove/delete/del 仓库地址/命令空间/镜像名:tag
  • –all-platforms 所有平台, 不加根据当前系统CPU架构来下载

镜像挂载查看镜像内容

mkdir /mnt/mount1
ctr i mount 仓库地址/命令空间/镜像名:tag /mnt/mount1
ls /mnt/mount1
umount /mnt/mount1

镜像导出/入

ctr i export [--all-platforms] 导出名 仓库地址/命令空间/镜像名:tag
ctr i import 导出名

镜像tag

ctr i tag  仓库地址/命令空间/镜像名:tag 仓库地址/命令空间/镜像名:tag
ctr i check 仓库地址/命令空间/镜像名:tag

containerd容器管理

#创建静态容器,并没有运行
ctr c create 仓库地址/命令空间/镜像名:tag 容器名称
ctr c ls
ctr taks/t/tasks ls
ctr c info 容器名称
#动态容器
ctr   run --net-host 仓库地址/命令空间/镜像名:tag 容器名称
#复制安装时候的垫片
cp usr/local/bin/containerd-shim-runc-v1  /usr/bin/
ctr task start -d 容器名称
ctr taks/t/tasks ls

进入容器

ctr task exec --exec-id $RANDOM(或者手动指定) -t 容器名称 /bin/bash

暂停/恢复容器

ctr task pause 容器名称
ctr task ls
ctr task resume 容器名称

停止/删除/启动容器

ctr task kill 容器名称
ctr task rm 容器名称
ctr task start -d 容器名称

删除容器

先停止动态容器变为静态的,在删除tasks,最后删除容器

ctr task ls
ctr task kill 容器名称
ctr c rm 容器名称

containerd私有仓库

containerd不错的文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1872022.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用FRP 0.58版本进行内网穿透的详细教程

什么是FRP? FRP(Fast Reverse Proxy)是一款高性能的反向代理应用,主要用于内网穿透。通过FRP,您可以将内网服务暴露给外网用户,无需进行复杂的网络配置。 准备工作 服务器:一台具备公网IP的服…

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第49课-机器人自动跳舞

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第49课-机器人自动跳舞 使用dtns.network德塔世界(开源的智体世界引擎),策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎…

谷歌发布两款新Gemma 2大语言模型;阿里云开源Qwen2-72B模型荣登榜首

🦉 AI新闻 🚀 谷歌发布两款新Gemma 2大语言模型 摘要:谷歌发布Gemma 2大语言模型,包括90亿和270亿参数两种版本。Gemma 2在推理性能、效率和安全性上较第一代有显著提升。27B模型的性能媲美更大规模的主流模型,且部署…

提升自来水公司经济效益的策略研究

现阶段,如何提高自来水公司经济效益的问题已经得到社会的广泛关注。文章将立足于成本管理的角度,在对自来水公司生产现状分析的基础上,总结影响自来水公司经济效益的相关因素,最后从成本管理的角度出发,对如何提高自来…

Hadoop-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece

背景介绍 这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。 之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。 注…

huggingface加速下载模型

文章目录 所需环境huggingface-cli 用法登录token 获取 huggingface 镜像huggingface 缓存hf-transfer 拉满下载带宽如果开了的话,记得关掉科学上网!!! 所需环境 python huggingface-cli 用法 huggingface-cli的更多用法点击这…

挂售转卖竞拍商城系统/竞拍系统/转拍闪拍系统+前端

挂售转卖竞拍商城系统源码/竞拍系统/转拍闪拍系统/后端PHP前端UNIAPP源码 玩法简介 ①、后台可添加商品进行挂单 ②、后台设置场次以及场次开始时间 ③、用户抢单 ④、抢单以后可选择提货或者转售 ⑤、玩家寄售需按照后台设置百分比进行加价 ⑥、玩家寄售需支付手续费(余额支付…

代码随想录——加油站(Leetcode 134)

题目链接 贪心 class Solution {public int canCompleteCircuit(int[] gas, int[] cost) {int curSum 0;int totalSum 0;int start 0;for(int i 0; i < gas.length; i){// 当前剩油量curSum gas[i] - cost[i];// 总剩油量totalSum gas[i] - cost[i];// 当前剩油量小…

【Linux】高级IO——五种IO模型和基本概念 ,非阻塞IO,fcntl,实现非阻塞IO,同步通信和异步通信

文章目录 Linux高级IO1. 五种IO模型1.1 阻塞IO1.2 非阻塞IO1.3 信号驱动IO1.4 IO多路转接1.5 异步IO 2. 同步通信和异步通信3. 阻塞和非阻塞 Linux高级IO 1. 五种IO模型 IO是什么&#xff1f; IO是计算机领域中的缩写&#xff0c;指的是输入/输出&#xff08;Input/Output&…

(番外篇)指针的一些相关习题讲解(速进,干货满满)(1)

前言&#xff1a; 我已经好久没写过博客了&#xff0c;这几天确实有点偷懒了&#xff0c;上次博客我们已经讲完了指针的部分内容&#xff0c;但我觉着没有习题是不够的&#xff0c;于是我出了这一篇番外篇&#xff0c;来让各位读者朋友们进行指针强化&#xff0c;这些题目都是小…

k8s学习--k8s群集部署zookeeper应用及详细解释

文章目录 zookeeper什么是zookeeper基本概念主要功能工作原理使用场景优点缺点 k8s集群部署zookeeper环境一、zookeeper部署YAML资源清单准备二、zookeeper部署及部署验证三、zookeeper应用验证 zookeeper 什么是zookeeper ZooKeeper 是一个开源的分布式协调服务&#xff0c;…

中北大学算法课动态规划问题实验:题目1 数塔问题

目录 1.实验名称2.实验目的3.实验内容4.实验过程伪代码java代码 5.实验结论及心得代码运行截图心得 实验报告 1.实验名称 动态规划问题实验&#xff1a;题目1 数塔问题 2.实验目的 (1)掌握动态规划法的设计思想&#xff1b; (2)掌握数塔问题的具体实现过程&#xff1b; (3)熟…

Zynq7000系列FPGA中的DMA控制器简介(一)

DMA控制器&#xff08;DMAC&#xff09;使用64位AXI主接口来执行与系统存储器和PL外围设备之间的DMA数据传输&#xff0c;操作频率同CPU_2x的时钟速率。传输由DMA指令执行引擎控制。DMA引擎运行在一个小指令集上&#xff0c;该指令集提供了一种灵活的指定DMA传输的方法。这种方…

Echarts图表的动画是如何实现的?一文为你解密,有图有代码

Echarts图表是可视化大屏中最常用组件&#xff0c;我们经常看到各种炫酷的图表动画效果&#xff0c;但是你知道这些动画效果叫什么&#xff0c;是如何实现的吗&#xff1f;今天贝格前端工场为大家分享一下。 一、Echarts图表动画有哪些类型&#xff1f; ECharts是一个基于Jav…

鸿蒙开发HarmonyOS NEXT (二) 熟悉ArkUI

一、构造函数 构造一个商品类Item&#xff0c;然后利用foreach函数循环渲染 class Item {name: stringimage: ResourceStrprice: numberdiscount: numberconstructor(name: string, image: ResourceStr, price: number, discount: number 0) {this.name name;this.image ima…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于最大信息系数-双层置信极端梯度提升树的电网虚假数据注入攻击定位检测》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

Python 全栈体系【三阶】(一)

三阶&#xff1a;Django - Redis - Ajax 第一章 Django 一、Django 基础 1. 基础 Django是一个开源的、重量级的WEB开发框架。 Django的官网&#xff1a; https://www.djangoproject.com 2. 安装与卸载 Django Django目前最新的版本为4.2,教学环境使用3.2 2.1 在线安装 …

libctk shared library的设计及编码实践记录

一、引言 1.1 <libctk>的由来 1.2 <libctk>的设计理论依据 1.3 <libctk>的设计理念 二、<libctk>的依赖库 三、<libctk>的目录说明 四、<libctk>的功能模块及使用实例说明 4.1 日志模块 4.2 mysql client模块 4.3 ftp client模块 4…

【Python】已解决:(SqlServer报错)SQL错误(208):对象名‘string_split’无效

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;&#xff08;SqlServer报错&#xff09;SQL错误&#xff08;208&#xff09;&#xff1a;对象名‘string_split’无效 一、分析问题背景 在使用Python连接SqlSe…

移动UI:我的界面,竟然有这么设计方式,而且个个都简洁美观。

移动应用中的个人中心页面通常包含以下内容&#xff1a; 1. 用户头像和昵称&#xff1a;展示用户的头像和昵称&#xff0c;用于个人身份的展示和识别。 2. 个人资料&#xff1a;展示用户的个人信息&#xff0c;如姓名、性别、生日、联系方式等。用户可以在这里查看和编辑自己…