关注mikechen,十余年BAT构架经验倾囊相授!

mikechen Docker架构经验_docker容器与容器云_Docker容器技术

你们好,我是mikechen睿哥。

Docker是云原生的基石,也是云估算的核心组成,下边我重点解读Docker@mikechen

Docker容器

在容器技术成为云原生基石的明天docker容器与容器云,Docker几乎是所有开发者和运维工程师必须把握的工具。

Docker容器技术_docker容器与容器云_mikechen Docker架构经验

Docker是一个开源的容器化平台,用于建立、部署和运行应用程序的容器。

它通过轻量级虚拟化技术,让开发者可以在任何支持Docker的环境中以一致的形式运行应用。

核心思想是:“一次建立linux命令大全,四处运行”。

Docker工作原理

Docker的运行原理,重点围绕镜像(Images)、容器(Containers)和库房(Registries/Repositories)这三个核心。

如右图所示:

Docker镜像

docker容器与容器云_mikechen Docker架构经验_Docker容器技术

Docker镜像是一个轻量级、独立的可执行软件包,包含了运行一个软件所需的所有内容:代码、运行时环境、库、环境变量和配置文件。

你可以把它想像成应用程序及其所有依赖项的一个“静态快照”或者“安装包”。

DockerImage├──Layer1:FROM ubuntu├──Layer2:RUN apt install nginx├──Layer3:COPY index.html /var/www└──...最终构成一个多层镜像

Docker容器

容器(Container)是镜像的一个运行实例,相当于“类”的实例对象。

容器是镜像的可写运行环境,启动时在镜像之上创建一个可写层。

容器内运行的进程拥有独立的命名空间和资源限制docker容器与容器云,实现进程隔离和资源控制。

docker容器与容器云_Docker容器技术_mikechen Docker架构经验

容器是动态的,可以启动、停止、删除,其生命周期与其可写层绑定,容器删掉时该层也会消失。

Docker库房

库房(Registry),是储存和管理镜像的地方,类似代码库房。

用户可以将镜像推送(push)到库房永久免费linux服务器,也可以从库房拉取(pull)镜像。

库房支持公共和私有两种方式,DockerHub是最大的公共库房。

库房促使镜像可以在不同环境间共享和分发,实现应用的快速布署和版本管理

Docker底层技术

Docker容器技术_mikechen Docker架构经验_docker容器与容器云

Docker的工作原理主要基于Linux内核的三大核心技术:命名空间(Namespaces)、控制组(cgroups)和联合文件系统(UnionFS)。

1.Namespace:实现资源隔离

Namespace是Linux提供的资源隔离机制,Docker借助以下几种Namespace来实现容器的“虚拟环境”效果:

通过这种机制,容器像是一个独立的系统,但毕竟只是主机上的一组被隔离的进程。

2.Cgroups:实现资源限制

Cgroups(控制组)用于限制和统计容器对资源的使用:

示例:限制容器最多使用512MB显存:

Docker容器技术_mikechen Docker架构经验_docker容器与容器云

docker run -m 512m nginx

3.UnionFS:实现镜像分层机制

Union文件系统(如OverlayFS)支持将多个目录挂载到同一目录,Docker镜像就建立于此之上。

其实,Docker通过Linux内核的命名空间实现了资源隔离,通过Cgroups实现了资源限制,通过联合文件系统实现了高效的镜像管理。

以上

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

Docker容器技术_docker容器与容器云_mikechen Docker架构经验

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复