简介
Docker是基于GO语言实现的云开源项目。“Build,Ship and Run Any App,Anywhere”通过对应用组件的封装,分发,部署,运行等生命周期的管理,使用户的APP及运行环境能够“一次封装,处处运行”。
Docker是解决了运行环境和配置问题的软件容器。它方便做持续继承并且是有助于整体发布的容器虚拟化技术。每个容器之间相互隔离,彼此都有自己的文件系统,容器之间的进程不会相互影响,能够区分计算资源。
镜像--images
镜像就是一个只读的文件模板,它可以用来创建Docker容器。一个镜像可以创建多个容器。
容器--containers
Docker利用容器独立运行一个或一组应用。容器是用镜像创建的运行实例。它可以被启动,开始,停止,删除。每个容器都是相互隔离的,保证安全的平台。可以把容器看成是一个简易版的Linux环境(包括root权限,进程空间,用户空间和网络空间),以及在其中的应用。
仓库--repository
仓库(repository)和仓库注册服务器(registry)是不同的,仓库注册服务器上往往存放着若干个仓库,每个仓库中又包含了多个镜像,每个镜像又不同的标签(tag)。仓库又分为公开仓库和私有仓库,最大的公开仓库是DockerHub。
小结
Docker本身是一个容器运行载体或称为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个包好的文件就是image镜像文件,只有通过镜像文件才能生成Docker容器实例。image文件可以看成是容器的模板,同一个image文件可以生成多个同时运行的容器实例。由image文件生成的容器实例本身也是一个镜像文件。
Docker为什么比虚拟机快
- Docker有着比虚拟机更少的抽象层。由于Docker不需要Hypervisor实现硬件资源的虚拟化,运行Docker容器上的程序都是直接使用物理机的硬件资源,因此,在CPU、内存利用率上Docker将在效率上有明显优势。
- Docker用的是宿主机的内核,而不需要GuestOS。因此,当创建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统。