关于docker
在容器技术,云服务已经发展趋于成熟的今天,docker这个容器技术的基石对于大家来说应该是耳熟能详了。对于笔者亲身经历的云原生技术的发展来说,docker算是后起之秀,却也已王者之姿坐稳了云计算的交椅。对于云计算,即虚拟化技术来说,由早期的vmware、lvm等虚拟机的实现,也有后来的openstack、ceph等各种计算资源的虚拟化技术,来实现资源的价值榨干,而docker能独占一头,是由于其轻便性以及完全的资源隔离性所决定的。
这里强调一下docker的核心,即进程管理,虽然docker从业务的角度来讲有资源隔离,资源限制,进程独立,环境独立等特性,但究其根本其实是一个进程管理技术,每一个容器其实根本上来说是一个进程,而其文件系统、操作系统、资源限制等特性是由以下三部分实现
- namespace隔离资源,包括最重要的PID namespace,还有mount、ipc、network等ns
- cgroups,实现cpu、memory等资源限制
- 联合文件系统,实现docker镜像的机制
Namespace
namespace技术是linux操作系统提供,用来隔离资源所用
Cgroups
Linux Control Group技术,是用来限制进程组能够使用的资源上限,包含cpu、内存、磁盘、网络带宽等
联合文件系统
UnionFS,所谓的镜像分层,也是基于联合文件系统的技术之上
文档信息
- 本文作者:Mikatsuki
- 本文链接:https://akitozz.github.io/2022/05/19/docker/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)