Docker作为一种虚拟化容器技术,为项目的开发提供了统一的环境,为环境备份、迁移创造了条件。
前言
Docker是什么?Docker是一种轻量级的虚拟化容器。它允许开发者将自己开发环境中的代码、依赖、配置等环境中有的东西都打包成一个容器。并且可以对这个容器进行分发、备份、迁移以及发布等等。
Docker架构
它与传统虚拟机的区别在于对虚拟环境的抽象程度不一样,两者的架构图如下图所示:
从图中可以更为直观的看出,传统虚拟机中都由自己独立的操作系统(如图中的Guest OS),而在Docker中,没有建立独立的操作系统环境,而是在docker引擎之上,建立了更为轻量级的,独立的容器。
Docker引擎
Docker引擎是一个C/S架构的应用,即客户端/服务端应用。
从图中可以看到Docker引擎的核心是Docker后台服务,该服务通过守护进程的形式常驻后台。并且提供RESTful的API接口,让客户端调用。客户端以命令行工具的形式存在。
Docker核心概念
镜像
Docker镜像是指用于创建Docker容器的只读模板。通过这个模板,可以创建与之相对应的环境,进而实现环境的分发、迁移等目的。镜像的来源可以有若干种,包括:
- 从仓库中下载
- 从Docker File文件中构建
- 对已有的镜像进行修改后创建
容器
Docker容器是镜像的运行时实例。可以将容器看成是程序的运行环境,在其中包含了程序运行的所有依赖。并且容器之间是相互隔离的。开发者可以通过API或客户端对容器进行创建、停止、删除等操作。
仓库
仓库是指存放镜像的地方。为了让Docker镜像能够共享、分发,Docker社区提供了官方的仓库。同时,一些第三方也提供了仓库用于存放镜像。开发者可以从这些仓库下载镜像,也可以将自己的镜像上传上去。
服务
服务允许开发者通过多个Docker后台程序来扩展容器,这些容器相互之间协同工作,并通过Docker API进行交互。