介绍:
Docker是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。
Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux 机器上,也可以实现虚拟化。类似ISO镜像文件
虚拟化就是把物理资源装变为逻辑上可以管理的资源,以打破物理结构间硬件间的壁垒,在虚拟的基础上而不是真实的基础上,可以扩大硬件的容量,简化
软件的重新配置过程。
简化管理,优化资源的解决方案。
目前主流的虚拟化技术主要有:KVM,、Xen、VMware Esxit、VirtualBox、Docker
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker的应用场景:
-
Web 应用的自动化打包和发布。
-
自动化测试和持续集成、发布。
-
在服务型环境中部署和调整数据库或其他的后台应用。
-
从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
Docker 的优点
1.简化程序:
Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。
2.避免选择恐惧症:
如果你有选择恐惧症,还是资深患者。Docker 帮你 打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。
3.节省开支:
一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。
资料链接:
补充 :
完全虚拟化技术实际上是通过软件实现对操作系统的资源再分配,比较成熟。例如:KVM,virtualBOX;
半虚拟化技术则是通过代码修改已有的系统,形成一种新的可虚拟化的系统,调用硬件资源去安装多个系统,整体速度上先对高一点,代表作品Xen;
Docker虚拟化(介于完全虚拟化、半虚拟化之间),轻量级虚拟化。
docker技术类似集装箱(容器),码头工人搬运货物就变成了集装箱的搬运,而集装箱的搬运模式更加单一,更加高效,还有其他好处。例如:货物多打包在集装箱里面,可以防止货物之间相互影响。并且有了集装箱,在移动许多货物的时候,直接把集装箱运送到另一个容器内即可,完全保证里面的货物的完整性。
基于cgroup(control groups)隔离
LXC + AUFS
- docker 虚拟化技术
镜像:模板,docker虚拟化基于系统、
程序,静态的,不能修改,iso文件不能直接修改。
容器:成为docker虚拟机,基于镜像运行的实体;
仓库:仓库用于存放镜像的地方、公共仓库、私有仓库。
docker有用在线文档:
http://www.docker.org.cn/book/docker/docker-push-image-13.html
网友评论