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

运维小路

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

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

相关推荐
dd要努力变优秀!2 小时前
Nginx简述
运维·nginx
hhzz2 小时前
nginx的可视化配置工具nginxWebUI的使用
运维·nginx
非凡的世界5 小时前
linux命令行连接Postgresql常用命令
linux·数据库·postgresql
茉莉玫瑰花茶6 小时前
gdb/cgdb调试技巧加餐
linux
SafePloy安策6 小时前
商用服务器密码机的加密技术与优势
运维·服务器·github
安的列斯凯奇8 小时前
JavaRestClient 客户端初始化+索引库操作
运维·jenkins
惟长堤一痕9 小时前
黑马linux入门笔记(01)初始Linux Linux基础命令 用户和权限 实用操作
linux·运维·笔记
飞花舞者9 小时前
nginx代理服务器配置不正确出现的小bug
运维·nginx·bug
ihengshuai9 小时前
Gitlab Runner安装与配置
前端·docker·云原生·gitlab·devops
lida200310 小时前
Open FPV VTX开源之默认MAVLink设置
linux·ardupilot·openipc·diy drone