一、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. 【调试】Linux下超强内存检测工具Valgrind

    [调试]Linux下超强内存检测工具Valgrind 内容简介 Valgrind是什么? Valgrind的使用 Valgrind详细教程 1. Valgrind是什么? Valgrind是一套Lin ...

  2. LWM2M的DISCOVER操作

    1. 先看下DISCOVER的数据流,工作服务器下发的指令到设备客户端 2. 解释,这个操作是用来发现Object, Object Instances, and Resources的属性,同时可以发现 ...

  3. 白话控制反转IoC及其应用

    控制反转(IoC, Inversion of Control),依赖注入(DI, Dependency Injection)是在面向对象编程中经常碰到的专业术语.很多朋友可能在百度之后,便浅尝辄止,没 ...

  4. c的多态

    使用函数数组,实现多态 参考my_strtoll10

  5. 微信小程序学习笔记(1)-微信小程序样式设置逻辑

    1.微信小程序的样式设置统一在每一页的.wxss的样式文件中,所有的样式设置代码统一写入这个文件中: 2.样式主要是通过.wxml里面控件的“class”属性来调用,此处调用会有几个细节要注意: 1) ...

  6. 微信小程序之注释出现的问题(.json不能注释)

    js的注释一般是双斜杠// 或者是/**/这样的快注释 .json是配置文件,其内容必须符合json格式内部不允许有注释. JSON有两种数据结构: 名称/值对的集合:key : value样式: 值 ...

  7. spark dataset join 使用方法java

    dataset<Row> df1,df2,df3 //该方法可以执行成功 df3= df1.join(df2,"post_id").selectExpr("h ...

  8. Matlab结构体定义

    定义一个Matlab结构体的代码,以飞行器为例: classdef flightpro properties pos = [ ]; RGB = [ ]; rate; type; end end

  9. 【转载】图解Java常用数据结构(一)

    图解Java常用数据结构(一)  作者:大道方圆 原文:https://www.cnblogs.com/xdecode/p/9321848.html 最近在整理数据结构方面的知识, 系统化看了下Jav ...

  10. Windows下PATH等环境变量详解(转载)

    本文转载自http://legend2011.blog.51cto.com/3018495/553255 在学习JAVA的过程中,涉及到多个环境变量(environment variable)的概念, ...