1、Docker介绍:
Docker是dotCloud公司开源的一个基于LXC的高级容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上;docker是用go语言编写的,实现容器化技术的技术的一种表现形式。
不同的应用程序可能需要不同的应用环境,docker完全使用沙箱机制,相互之间不会有任何借口,几乎没有性能开销,不依赖于任何语言、框架或包装系统,可以很容易的在机器和数据中心运行。相当于一个集装箱,封装了不同的应用,并做到了资源隔离,可以单独拿过来直接使用,而不需要部署相应的应用环境,也不用担心两个集装箱内的程序会相互影响。
2、容器技术的核心:
Cgroup(资源控制)与Namespaces(访问隔离),他们和Layer Fs(容器特殊的文件系统,解决镜像复用的问题)共同组成了linux Container
(1)Cgroups限制了不通进程的物理资源占用,但未把它们隔离开来,它们仍然是共享一个工作环境:访问同一个文件系统;同一个主机名与IP地址,端口争用;彼此之间可以进程间通讯。
(2)Namespaces相当于一个壳,给予不同的进程分配不同的namespaces,每个Namespaces下有自己的系统(文件、用户、网卡等),进程相互之间不受影响。
3、Docker
4、Docker的核心价值:提升生产力
例如:可以把需要的常用中间件(tomcat,Apache,Nginx,MQ等)封装起来,随时使用,省去了部署的时间和精力,减少出错。