说明:
        这篇博文是根据国外的另一篇总结而来,第一个链接为原文,第二个为译文,第三个有几个图挺好
 
        http://blog.flux7.com/blogs/docker/docker-tutorial-series-part-1-an-introduction 原文
        http://dockone.io/article/101  译文
        https://www.cnblogs.com/SzeCheng/p/6822905.html
 
一、Docker有三个组件和三个基本元素
 
1、三个组件
Docker Client:用户界面,它支持用于与Docker Daemon之间的通信
Docker Daemon:运行与主机上,处理服务请求
Docker Index:是中央registry,支持拥有公有与私有访问权限的Docker容器镜像的备份
 
2、三个元素
Docker Containers:负责应用程序的运行,包括操作系统、用户添加的文件以及元数据
Docker Images:是一个只读模板,用来运行Docker容器
DockerFile:是文件指令集,用来说明如何自动创建Docker镜像
 
 
 
Docker使用以下操作系统的功能提高效率:
1)Namespaces:充当隔离的第一级。确保容器中运行一个进程而且不能看到货影响容器外的其他进程
2)Control Groups:是LXC的重要组成部分,具有资源核算与限制的关键功能
3)UnionFS:(文件系统)作为容器的构建块。为了支持Docker的轻量级以及速度快的特性,它创建了用户层
 
 
二、Docker引擎
 
 
 
Server是一个常驻进程
REST API 实现了client和server间的交互协议
CLI实现容器和镜像的管理,为用户提供统一的操作界面
 
 
三、Docker架构
 
 
Docker使用C/S架构,Client通过接口与Server进程通信实现容器的构建、运行和发布。client和server可以运行在同一台机器,也可以通过跨主机实现远程通信。
 
四、步骤
 
运行任何应用都必须按照以下连个步骤:
1)创建一个镜像文件
2)运行容器
 
这些操作由Docker client来执行,Docker Client一般指docker命令,Docker Client向Docker Daemon发出请求创建一个镜像,并且向指定容器内要运行的命令
 
1、创建一个镜像
Docker Image是一个构建容器的只读模板,它包含了容器启动所需的所有信息,包括运行程序和配置数据。每个镜像都源于一个基本的镜像,然后根据Dockerfile中的指令创建模板。对于每个指令,在镜像上创建一个新的层面
 
一旦镜像创建完成,就可以将它们推送到中央registy:Docker Index。供他人使用,然而,Docker Index为镜像提供了两个级别的访问权限:公有访问和私有访问。
 
2、运行容器
当容器被启动后,一个读写层会被添加到镜像的顶层。当分配到合适的网络和IP地址后,需要的应用程序就可以在容器中运行了。

Docker组件与元素(三)的更多相关文章

  1. 【原创】开源.NET排列组合组件KwCombinatorics使用(三)——笛卡尔积组合

           本博客所有文章分类的总目录:本博客博文总目录-实时更新 本博客其他.NET开源项目文章目录:[目录]本博客其他.NET开源项目文章目录 KwCombinatorics组件文章目录: 1. ...

  2. Java开源博客My-Blog之docker组件化修改

    前言 5月13号上线了自己的个人博客,<Docker+SpringBoot+Mybatis+thymeleaf的Java博客系统开源啦>,紧接着也在github上开源了博客的代码,到现在为 ...

  3. React: React组件创建的三种方式

    一.简介 在前面介绍的React组件知识中,对于组件的创建我只是用了其中某一种方式.其实,在2013年React诞生之初,对于React组件的创建,仅仅只有一种方式,也即createClass函数,在 ...

  4. 黑马vue---56-58、vue组件创建的三种方式

    黑马vue---56-58.vue组件创建的三种方式 一.总结 一句话总结: 不论是哪种方式创建出来的组件,组件的 template 属性指向的模板内容,必须有且只能有唯一的一个根元素 1.使用 Vu ...

  5. 七天接手react项目 —— 生命周期&受控和非受控组件&Dom 元素&Diffing 算法

    生命周期&受控和非受控组件&Dom 元素&Diffing 算法 生命周期 首先回忆一下 vue 中的生命周期: vue 对外提供了生命周期的钩子函数,允许我们在 vue 的各个 ...

  6. docker 组件(c/s)

    Docker 组件 1. docker client : docker的客户端 2. docker server : docker daemon的主要组成部分,接受用户通过docker client发 ...

  7. Docker入门教程(三)Dockerfile

    Docker入门教程(三)Dockerfile [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第三篇,介绍了Dockerfile的语法,DockerOn ...

  8. ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇

    原文:ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇 第三章 为控件添加事件 好了,我们之前以前开发一个控件.而且也添加了属性,开发也很规范,但是那个控件还差最后一点:添加事件. 系列 ...

  9. ASP.NET自定义控件组件开发 第三章 为控件添加事件 后篇

    原文:ASP.NET自定义控件组件开发 第三章 为控件添加事件 后篇 第三章 为控件添加事件 后篇 前一篇文章只是简单的说了下事件,但是大家应该方法,在ASP.NET自定义控件中只是简单那么定义事件是 ...

随机推荐

  1. 【文献08】多移动机器人轨迹跟踪控制系统设计与实现-运动学ADRC控制

    参考: 陈俊, 俞立, 滕游. 多移动机器人轨迹跟踪控制系统设计与实现[J]. 计算机测量与控制, 2017(7). https://drive.wps.cn/view/p/28819052019?f ...

  2. js css 多个按需要顺序加载

    https://github.com/rgrove/lazyload/

  3. 【C/C++】内存基础

    1. 基本数据类型 short s = 0x4142; // 16进制 char c = *(char*)&s; cout << c << endl; 我的电脑上输出为 ...

  4. Vim 安装、配置及复制粘贴操作

    1.安装:sudo apt-get install vim 2.配置:cd ~ #进入用户主目录 touch .vimrc #.后缀文件不可见 vi .vimrc #打开文件 输入: set cind ...

  5. C++获取网络数据

    1.  获取数据 工具libcurl libcurl主要功能就是用不同的协议连接和沟通不同的服务器.libcurl当前支持http, https, ftp, gopher, telnet, dict, ...

  6. Python标准库映射类型与可散列数据类型的关系

    这里有两个概念似懂非懂,在这里明确一下: 映射类型: Python>3.2中,collections.abc模块有Mapping和MutableMapping两个抽象基类(Python2.6~3 ...

  7. PHP socket服务端与客户端的简易通信

    今天学习socket通信的同时,顺便整理了下以前初识socket的知识. 现在关于php的socket通信,有些框架已经十分成熟了,比如  swoole 和 workerman,这两个大家可以学习学习 ...

  8. new 几种用法

    第一种:创建对象(运算符) 第二种:隐藏基类方法(  修饰符) 第三种:new约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数 (泛型中的new()约束)

  9. oracle高级分组

    基本group by用法 create table test_table(a varchar(20),b varchar(20),c varchar(20)) insert into test_tab ...

  10. 团队项目(MVP------新能源无线充电管理网站)(总结)

    经过了几个月的学习时间与团队的磨合以及一系列的困难之后,我们mvp小组一起完成了这个项目,内心也是十分激动和有成就感的.其实一开始基础并不好,很多都不知道,但是通过在慕课网上的学习以及老师严厉地督促下 ...