Docker是什么呢?在理解Docker之前,我们先来区分清楚两个概念,容器和虚拟机。
相信很多人都有使用过虚拟机,无论是Ubuntu还是其他一些Linux系统,每台虚拟机都必须安装一个操作系统,并且分配给它一定的资源,当虚拟机被开启时,预先分配给它的资源将被全部占用。每一台虚拟机都有完整的操作系统,必要的二进制和库。
容器技术与虚拟机不同,容器是与宿主机共享硬件资源和操作系统,可以实现资源的动态分配。容器以进程的形式在用户的操作系统中运行。容器技术可以在资源受到隔离的进程中运行程序,通过容器我们可以轻松打包程序和配置,使其变成容易运行的构建块,并且部署起来不受用户操作系统环境的影响。
Docker属于Linux容器的一种封装,提供简单易用的使用接口。
Linux容器不是模拟一个完整的操作系统,而是对进程进行隔离,相当于在正常的进程外面套了一个保护层,对于容器内部的进程来说,它接触到的资源都是虚拟的,从而实现与底层系统的隔离。
Docker将应用程序与该程序的依赖,打包在一个文件当中,运行这个文件,就会形成一个虚拟容器。程序在这个容器中运行,就好像在真实的物理机运行一样。使用Docker,我们可以方便地创建和使用容器,还可以把自己的程序打包成镜像,快速部署而不需要重新配置环境。