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. 洛谷P3809 后缀数组模板

    题目:https://www.luogu.org/problemnew/show/P3809 刚学了后缀数组,看人家手写演示了半天,大概明白了过程,但完全写不出来代码: 于是借鉴了许多,不过都差不多, ...

  2. Django:提交表单报错:RuntimeError: You called this URL via POST, but the URL doesn’t end in a slash and you have A

    Django:提交表单报错:RuntimeError: You called this URL via POST, but the URL doesn’t end in a slash and you ...

  3. windows服务安装错误 在‘安装’过程发生异常:System.ComponentModel.Win32Exception:系统正在关机

    今天安装windows服务的时候先是在本地安装测试通过,但是一到服务器就一直安装失败 在‘安装’过程发生异常:System.ComponentModel.Win32Exception:系统正在关机 然 ...

  4. 自学Python十一 Python爬虫总结

    通过几天的学习与尝试逐渐对python爬虫有了一些小小的心得,我们渐渐发现他们有很多共性,总是要去获取一系列的链接,读取网页代码,获取所需内容然后重复上面的工作,当自己运用的越来越熟练之后我们就会尝试 ...

  5. Java 基本的递归写法

    1.首先我们得有一个树状结构的表,类似这种结构.必须得有 id,pid  其他的根据需要来. 我们叫它treeTbl表吧.这里pid为0的表示是顶级节点. 2.接着select * from tree ...

  6. ASP.NET访问网络驱动器(映射磁盘)

    也许很多朋友在做WEB项目的时候都会碰到这样一个需求: 当用户上传文件时,需要将上传的文件保存到另外一台专门的文件服务器. 要实现这样一个功能,有两种解决方案: 方案一.在文件服务器上新建一站点,用来 ...

  7. QS之force(1)

    force This command allows you to apply stimulus interactively to VHDL signals(not variables), Verilo ...

  8. Java_Jdbc_连接mysql数据库_1.打通数据库

    准备工作:myeclipes,mysql,navicat,jar包等工具 首先,需要导入连接数据库需要的jar包.照着教程敲的程序一直出错,结果就是导jar包导得有问题. 正确的(不唯一)的步骤为:1 ...

  9. Docker 数据卷重复挂载测试

    没想到一年没写博客了,这中间都是记在自己的笔记本上,大部分网上都有,这个好像没有,所以发上来吧! 本文是测试Docker容器(相同目录/父子目录)同时挂载到宿主机(同目录/不同目录)时的情况,废话少说 ...

  10. 题解 P3258 【[JLOI2014]松鼠的新家】(From luoguBlog)

    唯一能得分的题也被自己搞炸了,好的. 考场上读完题基本认定和lca脱不了干系,想了一会确认是树剖. 那么问题来了,考前一节课刚发现自己之前打的树剖是错的. 而且就算是错的我也没信心考场调出来. 于是打 ...