本笔记为阿里云天池龙珠计划Docker训练营的学习内容,链接为:https://tianchi.aliyun.com/specials/activity/promotion/aicampdocker
Docker 底层技术
- NameSpaces:用于做进程之间的隔离
- Control Groups: 用于做资源控制,根据需求划分资源的核心数,内存,硬盘等等,例如我们之前新建一个虚拟机一样
- Union file systems(UFS,联合文件系统):Container和image的分层
Docker 基本概念
Docker最重要的三个概念是:镜像(image),容器(container),仓库(repository)
镜像
- 镜像是文件与meta data(元数据)的集合
- 镜像是分层的,并且每一层都可以添加删除文件,从而形成新的镜像
- 不同的镜像可以共享相同的层(layout)
- 只读的
容器
容器是镜像的一个运行实例,镜像启动后会形成一个容器,容器在计算机中是一个进程,但这个进程对其他进程并不可见
- 通过image 创建
- 在image 的最后一层上面再添加一层,这一层比较特殊,可读写
- image 负责存储和分发,container 负责运行
仓库
镜像仓库是存放容器镜像的场所,镜像仓库提供了庞大的镜像集合供使用,它是一个软件+数据的集合
虚拟机与Docker 的区别
- 传统的虚拟机是在宿主机之上,添加了一个新的操作系统,这就直接导致了虚拟机的臃肿,与不便迁移
- Docker 是直接寄存在宿主机上,另外Docker 其实是一个黑盒的进程,区别于传统的进程,Docker 可以独立出一个自己的空间,不会使得在Docker 中的行为以及变量溢出到宿主机上