Docker了解
1.Docker能做什么
:Docker能够解决虚拟机能够解决的问题,同时也能够解决虚拟机由于请求资源过高无法解决的问题。
 *隔离应用依赖
 *创建应用镜像并进行复制
 *创建容易分发的即启即用的应用
 *允许实例简单,快速的扩展
 *测试应用并随后销毁他们
 Docker的目标是创建软件程序可移植的轻量容器,让其可以在任何安装Docker的机器上运行,不考虑底层操作系统。

2.Docker提供资源和抽象
 *镜像:类似于快照,轻量级,创建时可以在现有的基础上修改子镜像,或者直接运行修改镜像。
 *容器:镜像中创建容器,是设计用来运行应用的,支持单线程,允许公开指定的端口。容器是短暂的一次性的。
 *链接:容器启动时,分配的私有IP,并可以引用其他容器,进行容器间交互。
 *数据卷:不受容器生命周期影响进行数据持久化,Docker提供工具分开数据和应用两部分。卷可以用来在容器间共享数据。

3.Docker如何实现功能
:Docker如何创建镜像、用它们创建容器、在需要时暴露端口和创造卷、通过链接将几个容器连接在一起?
 Docker使用cgroups来提供容器隔离,而union文件系统用于保存镜像并使容器变得短暂
 *Cgroups:限制Linux进程组的资源占用,为进程组制作PID,UTS,IPC, 网络,用户以及装载命名空间。
 *union:文件系统装载在其他的文件系统上,结果就是一个分层的积累变化。 
 Docker允许在union文件系统中使用aufs、btrfs或设备映射(device mapper)
 ①镜像只是一个json,指定了从该镜像运行的容器的特性,union装载点保存在哪里,要公开什么端口等等。
 每个镜像与一个union文件系统关联,每个docker的union文件系统都有一个上层。
 ②容器之所以是短暂的,是因为创建一个镜像,创建容器,Docker会创建一个空白的union文件系统加载在与该镜像关联的union文件系统上。
 由于union文件系统是空白的,意味着没有变化会被应用到镜像文件系统上, 当你创建一些变化时,文件系统会体现出来。
 当容器停止时,该容器的union文件系统会被丢弃。留下的是启动时的原始镜像文件系统。除非创建一个新镜像或者卷
 ③卷所做的是在容器内指定一个目录,以便于在union文件系统外保护它。卷基本与镜像相同,现在还指定了一些公开给宿主的端口。

深入浅出:http://www.infoq.com/cn/articles/docker-core-technology-preview/

Docker了解的更多相关文章

  1. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  2. Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境

    首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...

  3. Docker 第一篇--初识docker

    已经多年不写博客, 看完<晓松奇谈>最后一期猛然觉醒, 决定仔细梳理下自己这几年的知识脉络. 既然决定写, 那么首先就从最近2年热门的开源项目Docker开始.Docker 这两年在国内很 ...

  4. 在docker中运行ASP.NET Core Web API应用程序(附AWS Windows Server 2016 widt Container实战案例)

    环境准备 1.亚马逊EC2 Windows Server 2016 with Container 2.Visual Studio 2015 Enterprise(Profresianal要装Updat ...

  5. docker for mac 学习记录

    docker基本命令 docker run -d -p 80:80 --name webserver nginx 运行容器并起别名 docker ps 展示目前启动的容器 docker ps -a 展 ...

  6. scrapy爬虫docker部署

    spider_docker 接我上篇博客,为爬虫引用创建container,包括的模块:scrapy, mongo, celery, rabbitmq,连接https://github.com/Liu ...

  7. [原][Docker]特性与原理解析

    Docker特性与原理解析 文章假设你已经熟悉了Docker的基本命令和基本知识 首先看看Docker提供了哪些特性: 交互式Shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上, ...

  8. 开发者的利器:Docker 理解与使用

    困扰写代码的机器难免会被我们安装上各种各样的开发工具.语言运行环境和引用库等一大堆的东西,长久以来不仅机器乱七八糟,而且有些相同的软件还有可能会安装不同的版本,这样又会导致一个项目正常运行了,却不小心 ...

  9. 使用python自动生成docker nginx反向代理配置

    由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建.停止的时候 ...

  10. 微服务与Docker介绍

    什么是微服务 微服务应用的一个最大的优点是,它们往往比传统的应用程序更有效地利用计算资源.这是因为它们通过扩展组件来处理功能瓶颈问题.这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个 ...

随机推荐

  1. 2733:判断闰年-poj

    2733:判断闰年 总时间限制:  1000ms 内存限制:  65536kB 描述 判断某年是否是闰年. 输入 输入只有一行,包含一个整数a(0 < a < 3000) 输出 一行,如果 ...

  2. CPU 虚拟化

    前面 虚拟化技术总览 中从虚拟平台 VMM 的角度,将虚拟化分为 Hypervisor 模型和宿主模型,如果根据虚拟的对象(资源类型)来划分,虚拟化又可以分为计算虚拟化.存储虚拟化和网络虚拟化,再细一 ...

  3. C++反汇编第二讲,不同作用域下的构造和析构的识别

    C++反汇编第二讲,不同作用域下的构造和析构的识别 目录大纲: 1.全局(静态)对象的识别,(全局静态全局一样的,都是编译期间检查,所以当做全局对象看即可.) 1.1 探究本质,理解构造和析构的生成, ...

  4. 这一次带你彻底了解Cookie

    前言 网络早期最大的问题之一是如何管理状态.简而言之,服务器无法知道两个请求是否来自同一个浏览器.当时最简单的方法是在请求时,在页面中插入一些参数,并在下一个请求中传回参数.这需要使用包含参数的隐藏的 ...

  5. HDU 1394 逆序数 线段树单点跟新 | 暴力

    Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java ...

  6. ORACLE SQL 整理

    1.查询字段中含有小写字母的数据 SELECT MATERIALCODE FROM RFXITEMATTENDCODE WHERE REGEXP_LIKE(MATERIALCODE,'([a-z])' ...

  7. AspNet Core :创建自定义 EF Core 链接数据库

    这两天比较忙,写的会慢一点. 我们以控制台演示 EF Core的链接数据库 首先创建控制台程序 创建数据上下文类 EntityTable /// <summary> /// 继承 DbCo ...

  8. 约瑟夫问题 小孩报数问题poj3750

    小孩报数问题 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 15228   Accepted: 6778 Descripti ...

  9. hadoop单机版安装及基本功能演示

    本文所使用的Linux发行版本为:CentOS Linux release 7.4.1708 (Core) hadoop单机版安装 准备工作 创建用户 useradd -m hadoop passwd ...

  10. Java-----关于eclipse导入项目发生的问题及解决办法

    今天通过eclipse导入了几个项目,项目名出现红叉,对于我这样的强迫症来说是无法容忍的,故现做总结,遇到同学可按照以下方法来操作. 改动的地方主要是两个方面: 1.Tomcat版本问题. 此问题是由 ...