一:Docker系统
Docker系统有两个程序:docker服务端和docker客户端
-
docker服务端:
是一个服务进程,管理着所有的容器。
-
docker客户端:
扮演着docker服务端的远程控制器,可以用来控制docker的服务端进程。
大部分情况下,docker服务端和客户端运行在一台机器上。
二:Docker架构
Docker采用C/S架构开发,整体架构如图所示:
三:Docker核心组件
Docker 镜像 - Docker images
Docker 仓库 - Docker registeries
Docker 容器 - Docker containers
- docker仓库:是集中存放镜像的地方
1.库分类(registry)
docker共有仓库
docker.io
docker私有仓库
个人或者公司部署的非公开库
docker国内仓库
网易蜂巢 阿里云 daocloud
- Docker镜像:Docker 镜像是 Docker 容器运行时的只读模板,每一个镜像由一系列的层 (layers) 组成
1.介绍(了解)
Docker 使用 UnionFS 来将这些层联合到单独的镜像中。UnionFS 允许独立文件系统中的文件和文件夹(称之为分支)被透明覆盖,形成一个单独连贯的文件系统。正因为有了这些层的存在,Docker 是如此的轻量。当你改变了一个 Docker 镜像,比如升级到某个程序到新的版本,一个新的层会被创建。因此,不用替换整个原先的镜像或者重新建立(在使用虚拟机的时候你可能会这么做),只是一个新的层被添加或升级了。现在你不用重新发布整个镜像,只需要升级,层使得分发 Docker 镜像变得简单和快速。
在 Docker 的术语里,一个只读层被称为镜像,一个镜像是永久不会变的。
由于 Docker 使用一个统一文件系统,Docker 进程认为整个文件系统是以读写方式挂载的。 但是所有的变更都发生顶层的可写层,而下层的原始的只读镜像文件并未变化。由于镜像不可写,所以镜像是无状态的。
每一个镜像都可能依赖于由一个或多个下层的组成的另一个镜像。下层那个镜像是上层镜像的父镜像。
2.镜像的大体分类方式
以操作系统名字
centos的docker镜像
centos5
centos6
centos7
镜像名称:
仓库名称+镜像分类+tag名称(镜像版本)
以应用的名字
nginx的docker镜像
tomcat的docker镜像
mysql的docker镜像
3.使用方式
都可以当作基础镜像来使用:下载镜像-->运行成容器-->安装应用-->打包成镜像-->交付上线
4 镜像基础
镜像名字:
registry/repo:tag
daocloud.io/library/centos:7
镜像ID:
64位的id号
所有镜像都是通过一个 64 位十六进制字符串 (内部是一个 256 bit 的值)来标识的。
为简化使用,前 12 个字符可以组成一个短ID,可以在命令行中使用。
基础镜像:
一个没有任何父镜像的镜像,谓之基础镜像。
- Docker容器
Docker 容器和文件夹很类似,一个Docker容器包含了所有的某个应用运行所需要的环境。每一个 Docker 容器都是从 Docker 镜像创建的。Docker 容器可以运行、开始、停止、移动和删除。每一个 Docker 容器都是独立和安全的应用平台,Docker 容器是 Docker 的运行部分。