Docker核心原理详解(图解+秒懂+全面)

B站影视 港台电影 2025-06-06 19:29 2

摘要:Docker是大型架构的必备技能,也是云原生核心,下面我重点详解Docker核心原理@mikechen

大家好,我是mikechen。

Docker是大型架构的必备技能,也是云原生核心,下面我重点详解Docker核心原理@mikechen

文章来源:mikechen.cc

Docker核心技术

Docker 容器技术的核心:在于实现进程、和资源的隔离、与管理。

这主要依赖于 Linux 内核的两大特性:Namespace(命名空间)和Cgroups(控制组)。

Namespace 实现了隔离 (Isolation):,它让容器拥有自己独立的系统视图,包括进程、网络、文件系统挂载点等。

Cgroups 实现了资源管理 (Resource Management),它限制和监控容器可以使用的资源,例如 CPU、内存、磁盘 I/O 等。

这两者相互配合,为 Docker 容器提供了基本的隔离性和资源控制能力,是 Docker 实现容器化的关键技术。

Namespace

Namespace 通过创建独立的系统资源视图,实现容器进程的环境隔离,确保容器内进程只能访问自身资源,增强安全性和隔离性。

Namespace 机制是 Linux 内核提供的一种隔离机制,它可以将全局的系统资源进行虚拟化。

使得不同的进程组(通常是 Docker 容器)拥有自己独立的资源实例,彼此之间互不干扰。

Docker 利用了以下几种关键的 Namespace:

mnt隔离挂载点和文件系统视图容器挂载根不同uts隔离主机名和域名每个容器自定义 hostnameuser隔离用户与 UID 映射实现 rootless 容器

通过这些命名空间,Docker 创建了一个个独立的运行环境,使得容器内的进程仿佛运行在独立的操作系统中,互不干扰。

Cgroups

Cgroups 负责:限制、和管理容器的资源使用,防止资源争抢,保障系统整体稳定和性能。

比如::CPU(核心数、时间片权重)

docker run -it --cpus="1.0" ubuntu

意思是这个容器,最多使用 1 个 CPU 核心的计算能力。

内存(最大使用量),比如:

docker run -it --cpu-shares=512 ubuntudocker run -it --device-write-bps /dev/sda:5mb ubuntu

网络带宽,比如:

sudo tc qdisc add dev vethXXXX root tbf rate 1mbit burst 32kbit latency 400ms

进程数量(PIDs),比如:

docker run -it --pids-limit=100 ubuntu

以上

本篇已收于mikechen原创《30万字阿里架构师进阶专题合集》里面。

来源:走在路上会快乐的小傻子

相关推荐