Docker-番外篇之containerd

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们在上一章,讲了虚拟化,虚拟化是把硬件虚拟化,然后创建出来的虚拟机完全隔离,而Docker则是软件(内核)虚拟化,他的隔离性会低于虚拟机。我们将通过3-4周来讲解Docker相关内容,由于涉及到内容较多,就不一一列出来具体的细节,主要从以下几个方面来讲解:

Docker基本情况

Docker基本命令

Dockerfile

Docker镜像

Docker仓库

Docker原理

Docker网络&存储&日志

Docker-Compose

Docker番外篇(本小节属于)

Containerd 为什么要单独拿出来说呢,因为目前随着Kubernetes放弃Docker,而且随着版本的不停迭代,市面上的大规模的Docker使用会越少越少,越来越多的人会直接使用Kubernetes,跳过Docker的管理,所以这里我们单独拿了一个小节来说说。

在容器领域有几个核心概念,Docker, Containerd ,Runc,Podman以及OCI等。尤其后期Docker的概念被弱化了。理解这些概念你才能更好的理解

名字

核心功能

下级

是否可以独立使用

强关联Kubernetes

Docker

构建镜像,容器生命周期管理

Containerd

Containerd

容器生命周期管理

Runc

Runc

容器运行时(创建容器环境)

Cgroup/Namespace

Podman

构建镜像,容器生命周期管理

Runc

OCI

容器规范

容器规范,镜像规范

Docker

Docker 是一个开源的平台,用于开发、打包、部署和运行应用程序的工具和服务。它提供了一整套容器化工具,包括 Docker Engine、Docker CLI、Docker Compose 和 Docker Swarm 等。使用 Docker,开发人员可以将应用程序及其依赖打包到一个可移植的容器中,并在任何地方运行。

核心功能:构建镜像,容器生命周期管理(通过调用Containerd来实现),他是有守护进程的,这守护进程可以接受标准API输入。

Containerd

Containerd 是一个开源的容器运行时(container runtime),最初由 Docker 公司开发,并后来捐赠给 CNCF(Cloud Native Computing Foundation)。它旨在提供核心的容器功能,如镜像传输和存储、容器生命周期管理、进程隔离等。containerd 负责管理容器的创建、启动、停止和删除,以及与容器相关的基本操作。

核心功能:容器生命周期管理(通过调用Runc来实现),他是有守护进程的,这守护进程可以接受标准API输入。

Runc

runc 是一个轻量级的容器运行时工具,它基于 OCI(Open Container Initiative)标准,提供了容器生命周期管理、进程隔离、文件系统隔离和网络隔离等功能。runc 的主要作用是将 OCI 格式的容器映射到 Linux 内核中的 cgroups 和 namespace。

核心功能:调用系统功能实现容器的隔离限制(通过Cgroups和Namespace实现),简单来说他是一个二进制包。

Podman

Podman 可以看作是一个更加轻量级、独立的容器运行时工具,适合于单机容器管理。

核心功能:构建镜像,容器生命周期管理(通过调用Runc来实现),简单来说他也是一个二进制包。创建的容器,重启以后是不能通过podman来实现自动启动的。

OCI

OCI 是一个开放标准,旨在定义容器格式和运行时规范,以促进容器生态系统的发展。OCI 的主要成员包括 Docker、Red Hat、Google、CoreOS、Microsoft 等公司,以及一些社区组织。

OCI 标准定义了容器镜像和容器运行时的格式和规范,以保证容器在不同平台上的兼容性和可移植性。OCI 定义的容器镜像格式是 OCI Image Format,容器运行时规范是 OCI Runtime Specification。

OCI 标准的主要作用是促进容器技术的发展和规范化,以便不同厂商和组织可以共同推进容器生态系统的发展,实现容器平台和应用程序之间的互操作性和可移植性。

以上Docker, Containerd,Runc,Podman 等都需要遵循OCI的规范。

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

相关推荐
疯狂吧小飞牛5 小时前
GPG基础指令
linux·服务器·网络
C++ 老炮儿的技术栈5 小时前
volatile使用场景
linux·服务器·c语言·开发语言·c++
hjxu20166 小时前
【OpenClaw 龙虾养成笔记一】在远程服务器,使用Docker安装OpenClaw
服务器·笔记·docker
todoitbo6 小时前
用虚拟局域网打通 Win/Mac/Linux 三端:跨设备协作的实用方案
linux·运维·macos
源远流长jerry6 小时前
RDMA 基本操作类型详解:从双端通信到单端直访
linux·网络·tcp/ip·ip
Sylvia-girl7 小时前
Linux下的基本指令1
linux·运维·服务器
wyt5314298 小时前
Redis的安装教程(Windows+Linux)【超详细】
linux·数据库·redis
17(无规则自律)8 小时前
【Linux驱动实战】:字符设备之ioctl与mutex全解析
linux·c语言·驱动开发·嵌入式硬件
CDN3608 小时前
360CDN SDK 游戏盾:轻量化接入 + 强防护实测
运维·游戏·网络安全
Stewie121388 小时前
Docker 面试题
运维·docker·容器