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. Net Core下多种ORM框架特性及性能对比

    在.NET Framework下有许多ORM框架,最著名的无外乎是Entity Framework,它拥有悠久的历史以及便捷的语法,在占有率上一路领先.但随着Dapper的出现,它的地位受到了威胁,本 ...

  2. SVN服务器

    什么是SVN服务器? 1.协助多人开发的代码管理器: 2.会记录代码是谁写的,并且可以回退到任意版本: 3.冲突解决: 4.升级(项目分支). SVN的搭建: 1.在服务器端下载SVN服务器,一个项目 ...

  3. 【深度学习系列】用PaddlePaddle和Tensorflow实现AlexNet

    上周我们用PaddlePaddle和Tensorflow实现了图像分类,分别用自己手写的一个简单的CNN网络simple_cnn和LeNet-5的CNN网络识别cifar-10数据集.在上周的实验表现 ...

  4. python随机图片验证码的生成

    Python生成随机验证码,需要使用PIL模块. 安装: 1 pip3 install pillow 基本使用 1. 创建图片 1 2 3 4 5 6 7 8 9 from PIL import Im ...

  5. 一道JS 连续赋值运算的问题

    原文链接:https://www.cnblogs.com/joesbell/p/6229423.html <script> var a = {n:1}; var b = a; a.x = ...

  6. Docker 使用教程

    概括  Docker与传统虚拟机的区别 与传统虚拟机的区别  Docker的安装 的安装  Docker daemon , client , containerd  镜像与容器操作  容器运 ...

  7. 记一下flex弹性布局

    flex弹性布局也越来越广泛的在我们代码中出现了,更加方便我们的布局.自己用了查,查了用,有些还是记不住,俗话说好脑子不如烂笔头,原来都是写在本子上的,很不幸的一次次的想翻的时候总是找不到,还是写博客 ...

  8. Android Weekly Notes Issue #286

    December 3rd, 2017 Android Weekly Issue #286 本期文章包含如何通过踩坑来学习Kotlin,以及利用Kotlin的data class做MVVM状态保存,还包 ...

  9. rabbitmq(中间消息代理)在python中的使用

    在之前的有关线程,进程的博客中,我们介绍了它们各自在同一个程序中的通信方法.但是不同程序,甚至不同编程语言所写的应用软件之间的通信,以前所介绍的线程.进程队列便不再适用了:此种情况便只能使用socke ...

  10. 【luogu2583】地铁间谍

    https://www.luogu.org/problem/show?pid=2583 设在时刻i,车站j到结束最短需要等待f(i,j)分钟,得状态转移方程: f(i,j)=min{     f(i+ ...