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的规范。

运维小路

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

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

相关推荐
CC.GG8 分钟前
【Linux】倒计时和进度条实现
linux
从零开始学习人工智能13 分钟前
Apache Airflow:让复杂工作流自动化变得简单优雅
运维·自动化·apache
Code Warrior37 分钟前
【Linux】库的制作与原理(1)
linux
生涯にわたる学び44 分钟前
关于之前知识的一些补充 02
linux·arm开发
汐汐咯1 小时前
linux上安装minconda
linux·运维·服务器
小波小波轩然大波1 小时前
Linux服务器配置(mariadb服务器)
linux·服务器·mariadb
忧郁的橙子.1 小时前
k8s 主节点重启后 从节点 get 异常
linux·运维·服务器
Raymond运维1 小时前
Apache介绍和安装
linux·运维·apache
云游2 小时前
Zabbix7.4.8(三):通过Zabbix agent 2监控Docker相关指标
docker·容器·zabbix
半梦半醒*2 小时前
nginx的访问控制、用户认证、https
linux·运维·服务器·nginx·https·centos