Docker是一种虚拟化技术

      刚開始看Docker,感觉非常抽象“An open platform for distributed applications for developers and sysadmins”这是Docker的标语。

“一个服务于分布式系统的开发人员和运维人员的开放平台”。不是非常好理解,直到文档中不断地和虚拟机做对照,才理解到它可能是和虚拟机相关的技术。Docker是LXC容器技术的典型代表,LXC技术能够实如今同一主机执行多个隔离的linux系统,通过linux内核功能实现轻量级的虚拟机。Docker技术尽管是虚拟化技术,却差点儿不消耗除容器中的应用程序外的其它资源,能够达到近乎裸机的执行能力,达到秒级/微秒级的部署。一台实体机能够执行几百甚至上千个docker容器。并且有非常高的移植性,能够在不论什么平台执行(包括物理机、虚拟机、云平台)。

普通虚拟机和Docker 容器的差别

每个虚拟机不仅包括程序、程序须要的包。并且还包括了一个操作系统,可是Docker容器是共享一个操作系统内核(kernel)的,这些容器通过命名空间相互独立,执行起来就像是在宿主机上的一个孤立的线程。并且他们的执行地点非常的多样化,不论什么设备都能够。

Docker的基本架构

Docker解决的问题

图中白色部分即为Docker

Build :docker同意开发人员把非常多微小的服务组装成一个应用。不用操心生产环境和开发环境因为环境问题而产生的问题。并且不用操心不论什么平台或者不论什么语言带来的困扰。

Ship(Docker Hub) : Docker能够让你用一个统一的用户接口设计从开发、測试到分发的一整套流程。
Run(Docker Cloud):Docker提供了帮你在多种平台安全、可靠的部署高可扩展的服务的能力。

Docker的结构

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

Docker也是用的C/S的架构。由Docker client向Docker daemon发消息,告诉Docker  须要做什么。Client和daemon能够在同一个操作系统下。也能够在远程。

两者联系的方式是:socket或者是RESTful API。

Docker daemon:docker daemon执行在宿主机上。用户不能直接操作daemon,仅仅能通过docker client转达。
Docker client:将用户的指令转发给Docker daemon,并接收Docker daemon返回的信息,展示给用户。

Docker images:Docker 镜像是一个仅仅读的魔板。比如:一个镜像能包括Ubuntu、Apache和你的应用。镜像被用于创建Docker容器,Docker提供了简单的方式去创建或者构建镜像。你也能够下载别人已经创建好的镜像。
Docker containers:Docker containers 有点像一个文件夹。

一个Docker容器包括了一个应用执行所须要的一切,每个容器都是由Docker镜像创建的,Docker 容器能够run、started、stopped、moved、或者deleted。

每个容器都是相互独立的。

Docker registries:Docker registries挂载了非常多镜像。有公共或者私有的仓库,让你去更新或者下载镜像。这些公共的Docker registry能够被Docker Hub提供。Docker Hub提供了非常多的镜像供你使用,你能够用这些镜像来创建自己的镜像或者直接使用。
Docker 工作流程:1、build 自己的Docker镜像  2、用自己创建的镜像创建容器  3、通过Docker Hub或者自己搭建的registry分享这些镜像

Docker组件

Docker Engine:提供了docker 创建镜像和执行容器等的核心方法。
Docker Hub:相似于gitHub的东西,只是上面是docker 镜像
Docker Machine :在云端或者其它网络环境中的Docker主机。
Docker Compose:用于定义多容器的应用。相当于省去了Docker container容器启动时输入的參数,让多种容器之间的关系更加清晰。构建多个容器更加方便。
Docker Toolbox:在Mac和Windows安装上的Docker安装程序,正常大家安装的Docker就是它,整合了全部的Docker 组件和工具。比如:Engine、Machine、Compose 还有Kitematic(可视化工具)。

Docker Trusted Registry;创建私有的专用的镜像仓库。
Docker Registry:创建开源的镜像仓库。

Docker Swarm:和Docker Machine一起配合做Docker集群相关的工作。

Docker入门介绍的更多相关文章

  1. 学习Mysql过程中拓展的其他技术栈:Docker入门介绍

    一.Docker的介绍和安装 1. Docker是什么 百度百科的介绍: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linu ...

  2. Docker入门-介绍和安装

    Docker容器 Docker是什么 Docker最初是dotCloud公司创建人Solomon Hykes在法国期间发起的一个公司内部项目,它是基于dotCloud公司多年云服务技术的一次革新,并于 ...

  3. Docker 入门介绍

    Docker是什么 从发布到现在 docker一直很受关注,在一定程度是改变了软件行业 如果你还不知道 docker 是什么是不是有点out了,接下来我们来介绍docker是什么,解决了什么问题,好处 ...

  4. Docker入门教程(一)介绍

    http://dockone.io/article/101 Docker入门教程(一)介绍 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第一篇,介绍了 ...

  5. Docker入门教程(九)10个镜像相关的API

    Docker入门教程(九)10个镜像相关的API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第九篇,重点介绍了镜像相关的Docker Remote ...

  6. Docker入门教程(八)Docker Remote API

    Docker入门教程(八)Docker Remote API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第八篇,重点介绍了Docker Remote ...

  7. Docker入门教程(七)Docker API

    Docker入门教程(七)Docker API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第七篇,重点介绍了Docker Registry API和 ...

  8. Docker入门教程(六)另外的15个Docker命令

    Docker入门教程(六)另外的15个Docker命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第六篇,继续介绍Docker命令.之前的第二篇文章 ...

  9. Docker入门教程(五)Docker安全

    Docker入门教程(五)Docker安全 [编者的话]DockOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第五篇,介绍了Docker的安全问题,依然是老话重谈,入门者可以通 ...

随机推荐

  1. hdu5249

    这个是去年astar的题~ 标准做法主席树,然而渣渣并不会(我确实叫zhazha...), 所以,他先离线,离散化,然后树状数组+二分水过了.... 离线的目的主要是为了离散化,剩下的就和用一个树状数 ...

  2. Appium - xpath

    基本属性定位 以淘宝app为例,定位左上角扫一扫按钮 1.可以通过text文本定位到 //*[@text='text文本属性'] # 定位text driver.find_element_by_xpa ...

  3. position中的absolute、fixed区别

    absolute: 绝对定位,相对于body.   fixed: 固定定位,相对于浏览器视窗,不随滚动条的滚动而滚动. 这两个属性概念比较模糊,一般在做左边列表菜单,右边内容区域的时候会用到这样的定位 ...

  4. 1.java安全框架SHIRO

    1. shiro介绍 Apache Shiro是一个强大且易用的java安全框架,执行身份验证.授权.密码和会话管理. 使用Shiro的易于理解的API,您可以快速.轻松地获得任何应用程序,从最小的移 ...

  5. JS排序之快速排序

    JS排序之快速排序 一个数组中的数据,选择索引为(2/数组长度)的那个数据作为基数,数组中的其他数据与它对比,比它数值小的放在做数组,比它数值大的放在右数组,最后组合 左数组+基数+右数组,其中,左数 ...

  6. 一张图说明DIV盒子距离

    虚线的宽高为你实际指定的width和height 虚线外的白色区域为padding 红色区域为border的width 红色外的区域为margin

  7. 关于改变安卓Button样式,这里有一个好方法。

    首先,在drawable下创建一个新的xml文件(例如我创建的为button.xml).然后在里面输入以下代码. <item> <shape> <gradient and ...

  8. phpmyadmin搭建

    phpadmin配置: 一.phpadmin安装及配置 1.解压phpadmin压缩包,并复制到 /usr/local/apache2/htdocs目录,重命名为dataManage 2.进入data ...

  9. Deutsch lernen (10)

    Dieser Weg Dieser Weg wird kein leichter sein. Dieser Weg wird steinig und schwer. Nicht mit vielen ...

  10. ubuntu 16.04 安装QT问题

    使用 sudo  sh ./**.run  有错误: 增加 文件的可运行权限: sudo chmod +x Qt.run 直接运行: ./Qt.run 可完成安装