Docker系列(二)组件介绍
2015-10-21 11:18
706 查看
镜像
镜像是一个只读的模版,可以用来创建Docker容器。
容器
Docker利用容器来运行应用,容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是互相隔离的,保证安全的平台。可以把容器看做是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序.
仓库
集中存放镜像文件的地方,容易把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像又不同的标签(tag).
仓库分为公开仓库(Public)和私有仓库(Private)两种形式。
容器生命周期图
Docker本地信息存储
路径:/var/log/message
查看docker日志:
tail –f /var/log/messages | grep docker
/var/lib/docker/graph 存放本地Image里面的分层信息(镜像元数据)
分层信息分两份存储,另外一份在GraphDB数据库(sqlite)中存储,当graph中分成信息被删除时会再从GraphDB中获取构造。
每个容器的最大为10G
/var/lib/docker/devicemapper/devicemapper/data 存储Image与Container的二进制数据文件
Data为稀疏文件最大100G,随着文件占用空间的大小增大而增大。
/var/lib/docker/devicemapper/devicemapper/metadata 存储相关元数据
Docker Image文件分析
下图为导出镜像jimages.tar包一级目录图
说明:
通过docker images -tree能够查看镜像的依赖关系
根目录下的repositories中记录镜像的名称、TAG、IMAGE ID
根目录下的每个文件夹对应了一层镜像文件名就是镜像ID
每个文件夹下有layer.tar、json、VERSION三个文件
VERSION文件记录本镜像版本号
layer.tar文镜像的数据文件
json文件内容为镜像的元数据文件,包含本镜像ID、依赖的父镜像ID、创建时间、相关容器信息、网络、主机名、环境变量等。
docker images -tree建立的镜像之间的关系就是根据遍历根目录下json文件得到。
镜像是一个只读的模版,可以用来创建Docker容器。
容器
Docker利用容器来运行应用,容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是互相隔离的,保证安全的平台。可以把容器看做是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序.
仓库
集中存放镜像文件的地方,容易把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像又不同的标签(tag).
仓库分为公开仓库(Public)和私有仓库(Private)两种形式。
容器生命周期图
Docker本地信息存储
路径:/var/log/message
查看docker日志:
tail –f /var/log/messages | grep docker
/var/lib/docker/graph 存放本地Image里面的分层信息(镜像元数据)
分层信息分两份存储,另外一份在GraphDB数据库(sqlite)中存储,当graph中分成信息被删除时会再从GraphDB中获取构造。
每个容器的最大为10G
/var/lib/docker/devicemapper/devicemapper/data 存储Image与Container的二进制数据文件
Data为稀疏文件最大100G,随着文件占用空间的大小增大而增大。
/var/lib/docker/devicemapper/devicemapper/metadata 存储相关元数据
Docker Image文件分析
下图为导出镜像jimages.tar包一级目录图
说明:
通过docker images -tree能够查看镜像的依赖关系
根目录下的repositories中记录镜像的名称、TAG、IMAGE ID
根目录下的每个文件夹对应了一层镜像文件名就是镜像ID
每个文件夹下有layer.tar、json、VERSION三个文件
VERSION文件记录本镜像版本号
layer.tar文镜像的数据文件
json文件内容为镜像的元数据文件,包含本镜像ID、依赖的父镜像ID、创建时间、相关容器信息、网络、主机名、环境变量等。
docker images -tree建立的镜像之间的关系就是根据遍历根目录下json文件得到。
相关文章推荐
- docker安装gitlab
- docker1.9源码分析(五):server分配handler提供服务的流程
- docker1.9源码分析(三):daemon启动过程
- docker1.9源码分析(二):client流程之CmdPull命令
- ubuntu 安装docker + seagull实现图形化管理
- docker1.9目录结构及各目录实现的功能
- docker里下的centos是一个只读文件系统?我修改/etc/hosts都修改不了,怎么破
- docker1.9源码分析(一):执行主函数以及命令行解析
- Docker在windows下无法开启伪终端解决方法
- Docker学习笔记 — Coreos/Flannel
- docker居然需要3.10以上的内核
- Docker 会取代虚拟机吗?
- docker for windows 安装
- centos7 搭建Docker Registry
- Docker系列(一)安装
- docker 创建启用systemd服务的容器
- 在Ubuntu Trusty 14.04 (LTS) (64-bit)安装Docker
- Docker push失败原因总结
- docker本地graph存储以及 registry:v1 registry:v2(distribution)存储
- Docker 常用命令