【本篇学习笔记来源于 Docker 从入门到实践】git
1.什么事Docker?【What】docker
Docker在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等,极大的简化了容器的建立和维护。从而让Docker技术比虚拟机技术更为轻便、快捷。服务器
2.Docker和传统虚拟化方式的不一样。网络
传统虚拟机技术是虚拟一套硬件后,在其上运行一个完整操做系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行与宿主的内核,容器中没有本身的内核,并且没有进行硬件虚拟。所以容器要比传统虚拟机更为轻便。架构
3.为何要使用Docker?【Why】性能
- 更高效的利用系统资源
- 更快速的启动时间
- 一致的运行环境
- 持续交付和部署
- 更轻松的迁移
- 更轻松的维护和扩展
对比传统虚拟机总结学习
4.基本概念操作系统
Docker中包含三个基本概念:镜像(Image)、容器(Container)和仓库(Repository)。设计
Docker镜像是一个特殊的文件系统,除了提供容器运行时须要的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数。镜像不包含任何动态数据,其内容在构建后不会被改变。对象
Docker采用了Union FS 的技术,将其设计为分层存储的架构。
Docker容器。镜像和容器的关系,就像是面向对象程序设计中的类和实例同样。镜像是静态的定义,容器是镜像运行时的实体。容器能够被建立、启动、中止、删除和暂停等。
容器跟镜像同样,每个容器运行时,是以镜像为基础层,在其上建立一个当前容器的存储层,容器存储层的生存周期和容器同样,容器消亡是,容器存储层也随之消亡。即,任何保存于容器存储层的信息都会随容器删除而丢失。
按照Docker最佳时间的要求,容器不该该向其存储层内写入任何数据,容器存储层要保持无状态化。全部的文件写入操做,都应该使用数据卷,或绑定宿主目录,这样会跳过容器存储层,直接对宿主发生读写,其性能和稳定性更高。
由于,数据卷的生存周期独立于容器,容器消亡,数据卷不会消亡。所以,使用数据卷后,容器删除或从新运行以后,数据不会丢失。
镜像构建完成后,很容易在当前的宿主机上运行,若是须要在其余服务器上使用这个镜像,咱们就须要一个集中的存储、分发镜像的服务,DockerRegister。
一个DockerRegister中包含多个仓库,每一个仓库能够包含多个标签,每一个标签对应一个镜像。