docker基本介绍

  • Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

  • Docker和虚拟机的区别:

    • 传统虚拟机是虚拟出一套硬件,运行一个完整的操作系统,然后在这个系统上运行软件;而容器没有自己的内核,也没有虚拟硬件,其中的应用是直接运行在宿主机的内核中的。

  • Docker的组成部分及核心概念:

    • 镜像(image):一个面向docker容器引擎的只读模板。(相当于Java中的类)
    • 容器(container):从镜像创建的运行实例。(相当于Java中的对象)
    • 仓库(registry):集中保存镜像的地方。
  • 安装完docker后尝试运行docker run hello-world命令。

    此命令的原理图如下:

  • docker的工作原理图如下:

  • 为什么docker比VMware快?

    • Docker有着比虚拟机更少的抽象层。由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源,因此在CPU、内存利用率上Docker将会在效率上有明显优势。
    • Docker利用的是宿主机的内核,而不需要Guest OS。因此,当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统,避免了引导、加载操作系统内核这个比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载Guest OS,这个新建过程是分钟级别的,而Docker由于直接利用宿主机的操作系统则省略了这个过程,因此新建一个Docker容器只需要几秒钟。