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. win7下使用apache ab 比较测试node与 tomcat

    最近在研究node,都说node单线程.事件环机制,高并发效率高,亲测一下,一探究竟 apache ab 安装 进入:http://httpd.apache.org/download.cgi#apac ...

  2. Dubbo源码学习--服务发布(ServiceBean、ServiceConfig)

    前面讲过Dubbo SPI拓展机制,通过ExtensionLoader实现可插拔加载拓展,本节将接着分析Dubbo的服务发布过程. 以源码中dubbo-demo模块作为切入口一步步走进Dubbo源码. ...

  3. eric6 中 designer 无法启动的解决办法

    1.安装环境:win10+python3.6+Eric6 2.问题:使用 pip install PyQt5 安装 PyQt5.9 版本后,发现 Eric6 中无法打开 designer.exe 工具 ...

  4. 运行时动态库:not found 及介绍-linux的-Wl,-rpath命令

    ---此文章同步自我的CSDN博客--- 一.运行时动态库:not found   今天在使用linux编写c/c++程序时,需要用到第三方的动态库文件.刚开始编译完后,运行提示找不到动态库文件.我就 ...

  5. Laravel 框架安装

    Composer 在命令行执行 create-project 来安装 Laravel:就是下面这一句话就OK了!composer create-project laravel/laravel --pr ...

  6. PL/SQL简单实现数据库的连接

    通常我们都会去选择 通过修改配置文件去实现数据库链接,方法如下:找到你orale 安装下的文件:instantclient_11_2\network\admin 修改的主要有三个地方:上面的命名随便起 ...

  7. macbookPro 搭建maven环境下载jar包

    今天要用itext的jar包,去官网看发现好像只能用maven下载,而我之前又换了电话,没办法咯,重新搭一次maven环境吧,在此记录,已便分享或自己将来查找 首选确定自己环境上jdk装好了,如果没有 ...

  8. ibv_get_device_guid()函数

    uint64_t ibv_get_device_guid(struct ibv_device *device); 描述 函数返回RDMA 设备的 GUID(The Global Unique IDen ...

  9. 新版netkeeper开wifi无需路由器

    谈一谈netkeeper的运行原理及如何不用路由器开启wifi.(针对重庆地区,其它地区没研究过.日期:2017.11.29) 旧版: netkeeper将用户名加密为真正的用户名进行登录,登录以后n ...

  10. 一道看似dp实则暴力的题 Zombie's Treasure Chest

     Zombie's Treasure Chest 本题题意:有一个给定容量的大箱子,此箱子只能装蓝宝石和绿宝石,假设蓝绿宝石的数量无限,给定蓝绿宝石的大小和价值,要求是获得最大的价值 题解:本题看似是 ...