一、Docker介绍
Docker提供了一个可以运行你的应用程序的封套(envelope),或者说容器,会像一个可移植的容器引擎那样工作,它把应用程序及所有程序的依赖环境打包到一个虚拟容器中,这个虚拟容器可以运行在任何一种Linux服务器上,这大大提高了程序运行的灵活性和可移植性。Docker是一种容器技术。
二、Docker特性
1、文件系统隔离:每个进程容器运行在完全独立的根文件系统里,容器之间相互隔离
2、资源隔离:可以使用cgroup为每个进程容器分配不同的系统资源,例如CPU和内存
3、网络隔离:每个进程容器运行在自己的网络命名空间里,拥有自己的虚拟接口和IP地址
4、写时复制:采用写时复制方式创建根文件系统,这让部署变得极其快捷,并且节省内存和硬盘空间
5、日志记录:Docker将会收集和记录每个进程容器的标准流(stdout/stdeer/stdin),用于实时检索或批量检索
6、变更管理:容器文件系统的变更可以提交到新的映像中,并可重复使用以创建更多的容器。无需使用模板或手动配置
7、交互式shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上,例如运行一个一次性交互shell
三、Docker工作原理
Docker使用客户端-服务器(C/S)架构模式。Docker客户端与Docker守护进程进行通信。Docker守护进程会处理复杂繁重的任务,例如建立、运行、发布你的Docker容器。Docker客户端和守护进程可以运行在同一个系统上,当然你也可以使用Docker客户端去连接一个远程的Docker守护进程。Docker客户端和守护进程之间通过socker或者restfu