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

运维小路

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

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

相关推荐
你好呀我是裤裤1 小时前
Linux基础开发工具的使用(apt、vim、gcc、g++、gdb、make、makefile)
linux·运维·vim
望获linux1 小时前
如何在望获实时 Linux & 京博航友善 NanoPC-T6 上部署 Docker
linux·运维·服务器·docker·eureka·开源软件
小白电脑技术1 小时前
Docker小雅Emby全家桶配置夸克网盘Cookie教程
docker
wangchen_01 小时前
linux编译器和自动化构建工具(gcc与Makeile)
linux·运维·服务器
DC_BLOG1 小时前
Linux-Ansible命令
linux·运维·服务器·ansible
人工干智能1 小时前
科普:“docker”与“docker compose”
运维·docker·容器
suenpeng1 小时前
安全运维,等保测试常见解决问题。
linux·运维·安全
神马都会亿点点的毛毛张1 小时前
【Docker教程】万字长文详解Docker命令
java·运维·后端·docker·容器
码农君莫笑1 小时前
Linux系统上同时打印到物理打印机并生成PDF副本方法研究
linux·前端·chrome·打印·信管通
马剑威(威哥爱编程)2 小时前
Linux驱动开发13个实用案例
linux·运维·驱动开发