一、Docker的结构。

Docker命令不清楚的时候可以在命令的最后加上--help

Docker和虚拟机的区别?

虚拟机的实现原理是:先模拟出一套硬件,然后在这基础上跑一个操作系统,然后在这个操作系统上跑应用程序,而Docker内的应用进程是没有内核的,直接用宿主的内核,所有Docker会比虚拟机轻便的多。

基本概念:

总共三个基本概念:①、镜像(image),②、容器(Container),③、仓库(Response)

①    镜像:

镜像是一个特殊的文件系统,它包含程序,库(用到的,用不到的),资源(图片了,文档了…),配置等文件,还包括一下为运行准备的配置参数。重点是镜像不含动态数据,他的内容在构建之后就不会改变。

分层存储:

如果镜像构建之后需要修改,怎么办?一个办法:就是分层处理,最开始的原镜像作为第一层,后续每次需要对镜像进行操作了,就可以再加一层,标记这一层做了什么操作。(这样做的意义就是对镜像进行了修改操作,但实际上原始镜像并没有改变),每增加一层都是在之前一层的基础上进行改变的。

②    容器

容器的定义就好像是面向对象中的类和实例化对象的定义,容器就是镜像实际运行时候的实例。

容器的实质就是进程,但是容器有自己的命名空间,所以他有自己独立的文件系统,网络空间,进程系统,甚至自己的用户ID空间。正因如此容器就好像独立于宿主系统之外的一个系统一样,但实际上他就是一个进程。

镜像是分层存储的,容器也同样如此,以镜像为基层,然后“实例化”出一个容器,就是在上面创建一个当前容器的存储层。这个为当前容器运行读写数据而准备的存储层成为容器存储层。

容器存储层:容器存储层的生命周期和容器一样,容器消亡时,存储层同样消亡,但是数据时很珍贵的,所以容器不要向存储层中读写数据,想要进行读写数据的时候,应当跳过存储层,写入数据卷或者从数据卷中读出,或者绑定宿主电脑的目录。这样容器删除或者重新运行时,数据就不会丢失。

Linux命名空间:就是对内核资源进行分区。

数据卷:是一个供一个或者多个容器使用的特殊目录。

数据卷的特性:

  1. 数据卷可以在容器间共享和重用
  2. 对数据卷修改可以立即生效
  3. 对数据卷更新不会影响镜像
  4. 数据卷默认会一直存在,即使容器被删除

UFS:闪存存储

③    仓库

仓库是用来管理镜像的,一个仓库中会有很多镜像,每个镜像都有一个在这个仓库中独一无二的标签,但是不同仓库之间标签名可以重复,通过<仓库名>:<标签>可以确定一个镜像,例如ubuntu:16.04 就是ubuntu仓库中,标签为16.04的镜像。

Docker的结构(6-13)的更多相关文章

  1. Docker - Docker Engine 结构结构概述

    概述 Docker Engine 结构的简单描述 ref docker 实战 第一本 docker 书 1. docker 版本 1. 版本 Docker Engine - Community 概述 ...

  2. docker存储结构解析

    由于aufs并未并入内核,故而目前只有Ubuntu系统上能够使用aufs作为docker的存储引擎,而其他系统上使用lvm thin provisioning(overlayfs是一个和aufs类似的 ...

  3. centos7用docker安装elasticsearch5.6.13的主从

    说明: 准备2台机器,我这里有192.168.0.170 和 192.168.0.169 192.168.0.170 作为master 192.168.0.169 作为普通node 一.环境1.doc ...

  4. Linux C 程序 预处理,结构体(13)

    C语言预处理,结构体 C语言预处理命令1.宏定义 1.无参数宏 #define 标识符 字符串 #代表本行是编译预处理命名 习惯上,宏定义大写 代替一个字符串,介绍重复书写某个字符串的工作量 有意义的 ...

  5. docker 现实---中小企业docker环境结构(五)

    docker对于中小企业,设定paas他没有足够的能量,没有必要为,个人二手sandbox实用性和小点.我个人觉得,中小企业可以使用docker要规范发展.测试.生产环境. 他画了一个简单的图表: d ...

  6. Docker学习总结(13)——从零开始搭建Jenkins+Docker自动化集成环境

    本文只简单标记下大概的步骤,具体搭建各个部分的细节,还请自行搜索.第一.二部分只是对Jenkins和Docker的简单介绍,熟悉的同学请直接跳到第三部分. 一.关于Jenkins Jenkins简介 ...

  7. Docker Dockerfile 基本结构详解

    dockerfike快速创建自定义的Docker镜像 一.目录 1.docker典型结构 2.指令介绍 3.创建docker镜像 二.结构 DockerFile分为四部分组成:基础镜像信.维护者信息. ...

  8. docker 内部组件结构 -- docker daemon, container,runC

    Docker, Containerd, RunC : 从 Docker 1.11 开始, docker 容器运行已经不是简单地通过 Docker Daemon 来启动, 而是集成了Container, ...

  9. Docker学习笔记

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...

随机推荐

  1. ORB-SLAM(十)LoopClosing

    构造函数 LoopClosing(Map* pMap, KeyFrameDatabase* pDB, ORBVocabulary* pVoc,const bool bFixScale); 主要分两部分 ...

  2. Hive窗口函数之LAG、LEAD、FIRST_VALUE、LAST_VALUE的用法

    一.创建表: create table windows_ss ( polno string, eff_date string, userno string ) ROW FORMAT DELIMITED ...

  3. vs2015 mvc项目数据迁移报错

    第一次做个mvc项目玩玩,然后需要数据迁移,也没做过,就百度找怎么数据迁移, 找到的方法是: 如果数据是在类库项目里就在‘程序包管理控制台’输入:enable-migrations -ContextT ...

  4. possible new indexes 出现了

  5. CSS选择器语法&示例

    CSS3 选择器 在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素. "CSS" 列指示该属性是在哪个 CSS 版本中定义的.(CSS1.CSS2 还是 CSS3.) ...

  6. 【system.array】使用说明

    对象:system.array 说明:提供一系列针对数组类型的操作 目录: 方法 返回 说明 system.array.join( array, separator ) [String]  将数组转换 ...

  7. 【WXS数据类型】Date

    生成 date 对象需要使用 getDate函数, 返回一个当前时间的对象. var date = getDate(); //返回当前时间对象 属性: 名称 值类型 说明 [Date].constru ...

  8. leetcode-零钱兑换—int溢出

     零钱兑换 给定不同面额的硬币 coins 和一个总金额 amount.编写一个函数来计算可以凑成总金额所需的最少的硬币个数.如果没有任何一种硬币组合能组成总金额,返回 -1. 示例 1: 输入: c ...

  9. 交换学生 (Foreign Exchange,UVa10763)

    题目描述: 解题思路: 开一个数组,读入一次交换两个数,如果最后数组不变,即符合匹配 #include<iostream> #include<cstdio> #include& ...

  10. gossip版本raft算法实现

    raft算法的实现概述 节点的启动和加入: 1. 第一个节点启动,发现没有其他的member节点,则自己变成master 2. 第二个节点启动并加入第一个节点,发现有member节点,并且master ...