Syntax highlighting of e5a4c57 ~( Docker)

Docker and container tools

== Tools ==
 * [[https://docker.io/|docker]]
 * [[https://containerd.io/|containerd]]
 * [[https://podman.io/|podman]]

== containerd ==

 * 容器管理, 通过 gRPC 接口提供了一系列的 API 来管理容器的生命周期 ,利用 Linux 的 namespace、cgroup 等技术来实现容器的隔离和资源限制。 Containerd 会为容器创建新的 namespace,包括 PID namespace、UTS namespace、IPC namespace 等, 通过 cgroup 为容器分配指定的 CPU、内存等资源。
 * 镜像管理, Containerd 支持多种镜像存储后端,如 OverlayFS、Btrfs 等。它支持多种镜像仓库协议,如 Docker Registry V2 协议。
 * 运行时环境创建, Containerd 遵循开放容器倡议(OCI)的运行时规范,通过与 OCI 兼容的运行时(如 runc)来创建和运行容器。在网络方面,它可以通过调用网络插件(如 CNI 插件)来为容器分配 IP 地址、设置网络路由等,使容器能够与宿主机和其他容器进行通信。对于存储,Containerd 可以将宿主机的目录或存储卷挂载到容器内,实现容器与宿主机之间的数据共享。

== 接口 ==
 
 * OCI - 开放容器倡议, runC
 * CNI 容器网络接口
 * CRI 容器运行时接口, containerd, CRI-O 
 * CSI 容器存储接口
 * CDI 容器设备接口

== 镜像 ==

 * 基于联合文件系统(UnionFS)。在 Containerd 中,常用的联合文件系统有 OverlayFS 和 Btrfs 等。

== 安全性 ==

 * Seccomp:限制容器的系统调用。
 * AppArmor:应用层访问控制。