Docker简介:

   Docker 是一个开源的应用容器引擎,以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。

 Docker与传统的虚拟化技术

传统虚拟化技术(VMware、Xen、Kvm)等技术

    纯软件的虚拟化是通过对于硬件层的模拟从而实现允许运行多个操作系统;

    硬件辅助虚拟化需要硬件层面对于虚拟化的支持,类似Inter-VT等,具有更高的运行效率。

    Docker基础知识(一)_第1张图片

传统虚拟化技术商业解决方案

    商业解决方案:VMware VSphere    VMvare Fusion

    开源解决方案:OpenStack  KVM

容器技术:

    LXC

    OpenVZ

    Docker:

    Imctfy Google的开源技术

Docker基础知识(一)_第2张图片

Docker存在的一些问题

    1. Docker是基于Linux 64bit的,无法在32bit的linux/Windows/unix环境下使用

    2. LXC是基于cgroup等linux kernel功能的,因此container的guest系统只能是linux base的

    3. 隔离性相比KVM之类的虚拟化方案还是有些欠缺,所有container公用一部分的运行库

    4. 网络管理相对简单,主要是基于namespace隔离

    5. cgroup的cpu和cpuset提供的cpu功能相比KVM的等虚拟化方案相比难以度量(所以dotcloud主要是按内存收费)

    6. docker对disk的管理比较有限

    7. container随着用户进程的停止而销毁,container中的log等用户数据不便收集


传统的虚拟化技术和docker的比较

Docker基础知识(一)_第3张图片


Docker的应用场景:

Docker基础知识(一)_第4张图片


 1、   部署应用简单,灵活性高

主要解决环境不一致等问题,还有多套环境部署,生产环境、测试环境、预测试环境等多套环境等问题。

 2、    开发人员开发环境配置

3、     应用的隔离

4、      服务器的整合

5、      快速的部署

6、      代码流水线的管理

将测试好的代码,放置在容器里面,可以在很多地方的运行

7、      开发调试工作

8、      产品的发布模式

部署文档比较多,即使很详细,但是还是会出现问题。