1. 什么是Docker
- 概念:Docker是一个能够把开发的应用程序自动部署到容器的开源引擎。
2. Docker的目标
- 提供一个简单,轻量的建模方式
- 职责的逻辑分离
- 快速,高效的开发生命周期
- 鼓励使用面向服务架构
3. Docker组件
- Docker客户端和服务器,也称为Docker引擎
- Docker镜像
- Registry
- Docker容器
4. Docker客户端和服务器
- Docker是典型的客户端服务器架构的程序。docker客户端只需向docker服务器或者守护进程发出请求,服务器或守护进程接收客户端发过来的请求,将完成的所有的工作并返回结果。
- docker守护进程有时也称为引擎
- docker提供了一个命令行工具以及一整套restful api与守护进程进行交互。
5. Docker镜像
- 镜像是构建docker容器的基石
6. Docker Registry
- docker用register来保存用户构建的容器
7. 容器
- docker可以帮用户构建和部署容器,用户只需把自己的应用程序或服务打包放进容器即可。
8. Docker技术组件
- 一个原生的linux容器格式,docker中称为libcontainer
- linux内核的命名空间,用于隔离文件系统,进程,网络
- 文件系统的隔离,每个docker容器都有属于自己的root文件系统
- 进程隔离,每个容器都运行在自己的进程环境中
- 网络隔离,容器间的虚拟网络接口和ip地址都是分开的
- 资源隔离和分组,使用cgroups将cpu和内存之类的资源独立分配每个docker容器
- 写时复制,文件系统都是通过写时复制创建,这意味着文件系统是分层的,快速的,而且占用的磁盘空间更小
- 日志,容器产生的STDOUT,STDERR和STDIN这些IO⑥都会被收集并记录进日志中,用来故障排错和日志分析
- 交互式的shell,用户可以创建一个为tty终端,将其连接到STDIN,为容器提供一个交互式shell。
Note:写时复制是指多个调用者同时请求相同的资源,他们会共同得到相同的指标指向相同的资源,直到某个调用者试图修改资源的内容时,系统才会真正的复制一份专用副本给该调用者,而其他调用者所见到的最初的资源仍然保持不变。
that's all