Docker 的基本组成
程序员文章站
2022-07-13 13:23:05
...
客户端/守护进程
Docker Image 镜像
容器的基石
层叠的只读文件系统
联合加载
Docker Container 容器
通过镜像启动
启动和执行阶段
写时复制
Docker Registry 仓库
公有
私有
Docker Hub
Docker 依赖Linux内核特性
-
Namespaces 命名空间 :系统资源的隔离(进程、网络、文件系统等)
-
Control group(cgroups) 控件组: 资源限制、优先级设定、资源计量、资源控制
Docker 和虚拟机的差别
容器和虚拟机相比,虚拟机需要应用、相对应的库、操作系统,而容器只需要应用、和相对应的库,并且虚拟机需要模仿硬件的行为,对内存和cpu消耗比较大。
Docker容器 | 虚拟机 | |
---|---|---|
操作系统 | 与宿主机共享OS | 宿主机OS上运行虚拟机OS |
存储大小 | 镜像小、便于存储传输 | 镜像庞大(vmdk、vdid等) |
运行性能 | 几乎无额外性能损失 | 操作系统额外的CPU、内存消耗 |
移植性 | 轻便、灵活、适应于Linux | 笨重,与虚拟化存储计数耦合度高 |
硬件亲和性 | 面向软件开发者 | 面向硬件运维者 |
部署速度 | 快速、秒级 | 较慢、10s以上 |
Docker 容器的能力
文件系统的隔离:每个容器都有自己的root文件系统
进程隔离:每个容器都运行在自己的进程环境中
网络隔离:容器间的虚拟网络接口和IP地址都是分开的
资源隔离和分组: 使用cgroups将CPU 和内存之类的资源独立分配给每个Docker容器。
上一篇: FFmpeg的基本组成(一)
下一篇: FFMPEG文件转封装