Docker的结构(6-13)
一、Docker的结构。
Docker命令不清楚的时候可以在命令的最后加上--help
Docker和虚拟机的区别?
虚拟机的实现原理是:先模拟出一套硬件,然后在这基础上跑一个操作系统,然后在这个操作系统上跑应用程序,而Docker内的应用进程是没有内核的,直接用宿主的内核,所有Docker会比虚拟机轻便的多。
基本概念:
总共三个基本概念:①、镜像(image),②、容器(Container),③、仓库(Response)
① 镜像:
镜像是一个特殊的文件系统,它包含程序,库(用到的,用不到的),资源(图片了,文档了…),配置等文件,还包括一下为运行准备的配置参数。重点是镜像不含动态数据,他的内容在构建之后就不会改变。
分层存储:
如果镜像构建之后需要修改,怎么办?一个办法:就是分层处理,最开始的原镜像作为第一层,后续每次需要对镜像进行操作了,就可以再加一层,标记这一层做了什么操作。(这样做的意义就是对镜像进行了修改操作,但实际上原始镜像并没有改变),每增加一层都是在之前一层的基础上进行改变的。
② 容器
容器的定义就好像是面向对象中的类和实例化对象的定义,容器就是镜像实际运行时候的实例。
容器的实质就是进程,但是容器有自己的命名空间,所以他有自己独立的文件系统,网络空间,进程系统,甚至自己的用户ID空间。正因如此容器就好像独立于宿主系统之外的一个系统一样,但实际上他就是一个进程。
镜像是分层存储的,容器也同样如此,以镜像为基层,然后“实例化”出一个容器,就是在上面创建一个当前容器的存储层。这个为当前容器运行读写数据而准备的存储层成为容器存储层。
容器存储层:容器存储层的生命周期和容器一样,容器消亡时,存储层同样消亡,但是数据时很珍贵的,所以容器不要向存储层中读写数据,想要进行读写数据的时候,应当跳过存储层,写入数据卷或者从数据卷中读出,或者绑定宿主电脑的目录。这样容器删除或者重新运行时,数据就不会丢失。
Linux命名空间:就是对内核资源进行分区。
数据卷:是一个供一个或者多个容器使用的特殊目录。
数据卷的特性:
- 数据卷可以在容器间共享和重用
- 对数据卷修改可以立即生效
- 对数据卷更新不会影响镜像
- 数据卷默认会一直存在,即使容器被删除
UFS:闪存存储
③ 仓库
仓库是用来管理镜像的,一个仓库中会有很多镜像,每个镜像都有一个在这个仓库中独一无二的标签,但是不同仓库之间标签名可以重复,通过<仓库名>:<标签>可以确定一个镜像,例如ubuntu:16.04 就是ubuntu仓库中,标签为16.04的镜像。
Docker的结构(6-13)的更多相关文章
- Docker - Docker Engine 结构结构概述
概述 Docker Engine 结构的简单描述 ref docker 实战 第一本 docker 书 1. docker 版本 1. 版本 Docker Engine - Community 概述 ...
- docker存储结构解析
由于aufs并未并入内核,故而目前只有Ubuntu系统上能够使用aufs作为docker的存储引擎,而其他系统上使用lvm thin provisioning(overlayfs是一个和aufs类似的 ...
- 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 ...
- Linux C 程序 预处理,结构体(13)
C语言预处理,结构体 C语言预处理命令1.宏定义 1.无参数宏 #define 标识符 字符串 #代表本行是编译预处理命名 习惯上,宏定义大写 代替一个字符串,介绍重复书写某个字符串的工作量 有意义的 ...
- docker 现实---中小企业docker环境结构(五)
docker对于中小企业,设定paas他没有足够的能量,没有必要为,个人二手sandbox实用性和小点.我个人觉得,中小企业可以使用docker要规范发展.测试.生产环境. 他画了一个简单的图表: d ...
- Docker学习总结(13)——从零开始搭建Jenkins+Docker自动化集成环境
本文只简单标记下大概的步骤,具体搭建各个部分的细节,还请自行搜索.第一.二部分只是对Jenkins和Docker的简单介绍,熟悉的同学请直接跳到第三部分. 一.关于Jenkins Jenkins简介 ...
- Docker Dockerfile 基本结构详解
dockerfike快速创建自定义的Docker镜像 一.目录 1.docker典型结构 2.指令介绍 3.创建docker镜像 二.结构 DockerFile分为四部分组成:基础镜像信.维护者信息. ...
- docker 内部组件结构 -- docker daemon, container,runC
Docker, Containerd, RunC : 从 Docker 1.11 开始, docker 容器运行已经不是简单地通过 Docker Daemon 来启动, 而是集成了Container, ...
- Docker学习笔记
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...
随机推荐
- 【调试】Linux下超强内存检测工具Valgrind
[调试]Linux下超强内存检测工具Valgrind 内容简介 Valgrind是什么? Valgrind的使用 Valgrind详细教程 1. Valgrind是什么? Valgrind是一套Lin ...
- LWM2M的DISCOVER操作
1. 先看下DISCOVER的数据流,工作服务器下发的指令到设备客户端 2. 解释,这个操作是用来发现Object, Object Instances, and Resources的属性,同时可以发现 ...
- 白话控制反转IoC及其应用
控制反转(IoC, Inversion of Control),依赖注入(DI, Dependency Injection)是在面向对象编程中经常碰到的专业术语.很多朋友可能在百度之后,便浅尝辄止,没 ...
- c的多态
使用函数数组,实现多态 参考my_strtoll10
- 微信小程序学习笔记(1)-微信小程序样式设置逻辑
1.微信小程序的样式设置统一在每一页的.wxss的样式文件中,所有的样式设置代码统一写入这个文件中: 2.样式主要是通过.wxml里面控件的“class”属性来调用,此处调用会有几个细节要注意: 1) ...
- 微信小程序之注释出现的问题(.json不能注释)
js的注释一般是双斜杠// 或者是/**/这样的快注释 .json是配置文件,其内容必须符合json格式内部不允许有注释. JSON有两种数据结构: 名称/值对的集合:key : value样式: 值 ...
- spark dataset join 使用方法java
dataset<Row> df1,df2,df3 //该方法可以执行成功 df3= df1.join(df2,"post_id").selectExpr("h ...
- Matlab结构体定义
定义一个Matlab结构体的代码,以飞行器为例: classdef flightpro properties pos = [ ]; RGB = [ ]; rate; type; end end
- 【转载】图解Java常用数据结构(一)
图解Java常用数据结构(一) 作者:大道方圆 原文:https://www.cnblogs.com/xdecode/p/9321848.html 最近在整理数据结构方面的知识, 系统化看了下Jav ...
- Windows下PATH等环境变量详解(转载)
本文转载自http://legend2011.blog.51cto.com/3018495/553255 在学习JAVA的过程中,涉及到多个环境变量(environment variable)的概念, ...