Syntax highlighting of Docker
Docker and container tools == Tools == * [[https://docker.io/|docker]] * [[https://containerd.io/|containerd]] * [[https://podman.io/|podman]] * [[https://www.envoyproxy.io/|Envoy]] == 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 - 开放容器倡议, [[https://github.com/opencontainers/runc|runC]] * CNI 容器网络接口 * CRI 容器运行时接口, [[https://github.com/kubernetes/cri-api/blob/master/pkg/apis/runtime/v1/api.proto|container runtime interface]], containerd, CRI-O , * CSI 容器存储接口 * CDI 容器设备接口 == 镜像 == * 基于联合文件系统(UnionFS)。在 Containerd 中,常用的联合文件系统有 OverlayFS 和 Btrfs 等。AUFS * OCI Distribution Specification, https://github.com/opencontainers/distribution-spec == 安全性 == * Seccomp:限制容器的系统调用。 * AppArmor:应用层访问控制。
