- 镜像(Image)
- 容器 (Container)
- 仓库(Repository)
核心概念
Docker镜像
Docker镜像( Image)类似于虚拟机镜像, 可以将它理解为一个面向Docker引擎的只读模板, 包含了文件系统。
例如: 一个镜像可以只包含一个完整的Ubuntu操作系统环境, 可以把它称为一个 Ubun阳镜像。 镜像也可以安装了Apache应用程序(或用户需要的其他软件), 可以把它称为 一个Apache镜像。
镜像是创建Docker容器的基础。 通过版本管理和增量的文件系统, Docker提供了一套十分简单的机制来创建和更新现有的镜像, 用户甚至可以从网上下载一个已经做好的应用镜像,并通过简单的命令就可以直接使用。
Docker容器
Docker容器(Container)类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。
容器是从镜像创建的应用运行实例,可以将其启动、开始、停止、删除,而这些容器都是相五隔离、互不可见的。
读者可以把容器看做一个简易版的Linux系统环境(这包括root用户权限、进程空间、用户空间和网络空间等 ),以及运行在 其中的应用程序打包而成的应用盒子。镜像自身是只读的。容器 从镜像 启动的时候,Docker会在镜像的最上层创建一个个可写层,镜像本身将保持不变。
Docker仓库
Docker仓库(Reposit。可)类似于代码仓库,是Docker集中 存放镜像文件的场所。
有时候会看到有资料将Docker仓库和注册服务器(Registry)混为一谈,并不严格区分。实际上,注册服务器是存放仓库的地方,其上往往 存放着多个仓库。每个仓库集中存放某 类镜像,往往包括多个镜像文件,通过不同的标签(饱g) 来进行区分。根据所 存储的镜像公开分享与否, 图2-1 仓库和注册服务器
Docker仓库可以分为公开仓库( Public)
和私有仓库(Private)两种形式。
目前,最大的公开仓库是Docker Hub, 存放了数量庞大的镜像供用户下载。国内的公开
仓库包括DockerPool等,可以提供稳定的国内访问。
当然,用户如果不希望公开分享自己的镜像文件, Docker也支持用户在本地网络内创建
一个只能自己访问的私有仓库。
当用户创建了自己的镜像之后就可以使用push命令将它上传到指定的公有或者私有仓库。这样用户下次在另外一台机器上使用该镜像时,只需将其从仓库上pull下来就可以了。
可以看出, Docker利用仓库管理镜像的设计理念与Git让非常相似。