docker发展历程

2022-12-15,

docker发展历程

docker本身不是容器,它只是一个更加易用的前端管理器。

最早期的容器技术概念是用chroot来实现隔离,但是chroot只是提供了对进程文件目录虚拟化的功能,不能防止进程恶意访问系统。

直到2008年 LXC(Linux Containers"牛奶牌牛奶"),一套完整的Linux容器管理实现方案,也有如别的方案如:OpenVZ等...

docker发展历程

lxc --> libcontainer --> runC

docker在起步阶段使用lxc,但发现其并不是那么好用,于是docker公司就自己把cgroups和lxc做了一个联合封装。lxc向上提供的接口做了二次封装,使其变成更易用的容器管理界面和容器管理逻辑。从而使得整个容器的使用变得更加简便了。

容器的核心组件:

NameSpaces :名称空间

仅能做到隔离,而不能做到资源分配的问题。PID,user,hostname,network都属于内核的,所以需要隔离开来。

rootfs: 根文件系统(mount)

PID

user

hostname /proc/system/hostname

network

ipc : 进程间通信(Inter-Process Communication)

Control Groups: 控制组

他能够实现以进程为单位,来尝试着把我们的CPU的时间分配,用量分配,内存空间分配,IO用量分配以指定比例或指定数量的方式分派给多个进程。

Chroot : 为了安全的目的等如Selinux


docker的重要概念

images : read only
containers : A container is a runable instance of an image. You can create,run,stop,move,or delete a container using the Docker API or CLI.
networks
volumes

后面会有对应的博客介绍其原理

docker 组件

物理: http协议进行通信
Client
daemon
registry
逻辑:
Containers
Images
Registry

docker发展历程的相关教程结束。

《docker发展历程.doc》

下载本文的Word格式文档,以方便收藏与打印。