Docker的三大核心为:镜像、容器、仓库。下面简单的介绍一下这三大核心概念。
1.docker镜像(image)
镜像是创建docker容器的基础,docker镜像类似于虚拟机镜像,可以将它理解为一个面向docker引擎的只读模块,包含文件系统。
创建镜像有三种方法:
(1)基于已有镜像的容器创建。主要是利用docker commit命令。
(2)基于本地模板导入。推荐利用OpenVZ提供的模板来创建。
(3)基于dockerfile创建。首先按照dockerfile的格式,编写好dockerfile文件,之后通
过docker build命令来创建镜像。docker build会读取制定的dockerfile,由docker服务器 来创建镜像。
2.docker容器(container)
Docker容器类似一个轻量级的沙箱,Docker利用容器来运行和隔离应用。
容器是从镜像创建的应用运行实例,可以将其启动、开始、停止、删除,而这些容器都是相互隔离、互不可见的。
读者可以把容器看做一个简易的LINUX系统环境(这包括root用户权限、进程空间、用户空间和网络空间等),以及运行在其中的应用程序打包而成的应用盒子。
镜像本身是只读。容器从镜像启动的时候,Docker会在镜像的最上层建一个可写层,镜像本身保持不变。
可以利用docker create命令创建一个容器,创建后的的容器处于停止状态,可以使用docker start命令来启动它。也可以直接利用docker run命令来直接从镜像启动运行一个容器。docker run = docker creat + docker start。
当利用docker run创建并启动一个容器时,docker在后台的标准操作包括:
(1)检查本地是否存在指定的镜像,不存在就从公有仓库下载。
(2)利用镜像创建并启动一个容器。
(3)分配一个文件系统,并在只读的镜像层外面挂载一层可读写层。
(4)从宿主机配置的网桥接口中桥接一个虚拟的接口到容器中。
(5)从地址池中配置一个IP地址给容器。
(6)执行用户指定的应用程序。
(7)执行完毕后容器终止。
3.docker仓库(Repository)
仓库是存放docker镜像的地方。仓库和注册服务器(Registry)还是有区别的。注册服务器是存放仓库的地方,在其中存放了很多仓库,每个仓库存放一类镜像文件。
仓库分为公有仓库和私有仓库,DockerHub是目前最大的公有仓库。可以通过docker push/pull命令从仓库中上传和下载镜像,docker search命令来搜索镜像。