docker是轻量级的操作系统虚拟化解决方案

优点

1、基于操作系统层面

2、启动速度快(秒级)

3、资源利用率高

4、性能高、易管理

docker有3大基本要素

分别是

1、镜像:只读模板,用来创建docker容器。

2、容器:镜像创建的运行实例,启动时创建一层可写曾作为最上层。

3、仓库:集中存放镜像文件场所,分私有仓库和公有仓库。

docker的底层实现有

1、名字空间:每个容器都有自己单独的名字空间,运行在其中的应用都像是在独立的操作系统中运行一样。名字空间保证了容器之间彼此互不影响。

  pid名字空间: 不同的用户进程就是通过pid名字空间隔离的,且不同名字空间可以有相同pid

  net名字空间: 网络隔离是通过net名字空间实现的。每个net名字空间有独立的网络设备,IP地址,路由表,/proc/net目录

  ipc名字空间: 进程间交互方法(IPC) 信息量、消息队列、共享内存

  mnt名字空间: 将一个进程放到一个特定的目录执行

  ufs名字空间: 独立的hostname、domainame

  user名字空间: 用容器内部的用户执行程序而非主机的用户

2、控制组:对共享资源进行隔离、限制、审计等

3、联合文件系统(AUFS):支持对文件系统的修改作为一次提交来一层层叠加、同时可以将不同目录挂载到同一虚拟文件系统下。镜像可以通过分层进行继承,基于基础镜像,可以制作各种具体应用镜像,不同容器可以共享一些基础的文件系统层。

4、网络实现:docker启动时会在主机建立一个docker0的虚拟网桥,同时分配一个随机的本地为占用的私有网段给docker0,如172.16.0.0。启动容器时,创建veth pair接口,一端在容器内及eth0,一端被挂载到docker0,名称以veth开头。每次创建新容器时,从可用地址段选一个空闲IP分配给容器eth0端口。使用docker0接口IP做所有容器的默认网关。

docker基本元素和底层实现的更多相关文章

  1. 四:(之一和之二) docker架构和底层技术分析(C/S架构)

    1.架构和底层技术 Docker Host提供了RESTUL api,使docker client可以通过这些命令调用dockerd. Registry是一个公用的存储镜像的容器,类似于github. ...

  2. 5、Docker架构和底层技术

    5.1 Docker Platform Docker提供了一个开发,打包,运行APP的平台 把APP和底层infrastructure隔离开来 5.2 Docker Engine 后台进程(docke ...

  3. docker 6 docker运行的底层原理

    docker是一个client-server结构的系统,docker守护进程运行在主机上,然后通过socket连接从客户端访问,守护进程从客户端接收命令并管理运行在主机上的容器,是一个运行时的环境,就 ...

  4. docker – 你应该知道的10件事

      容器并不是一个全新的技术,但这并不妨碍Docker如风暴一样席卷整个世界. 如果你在IT圈里,你一定听说过Docker.就算与其他热门技术,如:Puppet/Chef,Hadoop或者MongoD ...

  5. Docker容器概念讲解

    Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源. Docker是通过内核虚 ...

  6. docker interact example

    此为docker 第一篇,插下杂七杂八的东西,好找,就这么简单,,,, yum -y install docker-io //install cp /var/tmp/cap.data /var/lib ...

  7. docker note from UC blog

    -------------------------------------------------------------------------- original url http://tech. ...

  8. 关于Docker在测试方面的应用

    Docker 火了很长一段时间了,前段时间简单的学习和试玩了一下子,发现他对测试很有价值,觉得有必要再次深入研究. 这里标记一些较好的学习网址,用作参考: InfoQ上面有系列的文章: 深入浅出Doc ...

  9. 用Dockerfile构建docker image

    dockerfile是为快速构建docker image而设计的,当你使用docker build 命令的时候,docker 会读取当前目录下的命名为Dockerfile(首字母大写)的纯文本文件并执 ...

随机推荐

  1. loadrunner乱码问题解决办法

    7.LoadRunner回放脚本时,在浏览器显示的中文是乱码 最近,遇到了好多乱码的问题,解决了一些,还有最后一个乱码,能想到的各种办法都试过了,还是不行,很奇怪啊. 解决这些乱码时,涉及到了http ...

  2. Laravel 入门

    本文介绍如何开始使用 Laravel. 读完本文,你将学到: 如何安装 Laravel,新建 Laravel 程序,如何连接数据库: Laravel 程序的基本文件结构: MVC(模型,视图,控制器) ...

  3. markdown在list或者引用之后怎么去重新令其一段

    多打一个空格,虽然这个方法简单的要是,但是我就是没有想到,真是尴尬到奶奶家啦!

  4. SpringMVC框架 注解 (转)

    原文地址:http://www.cnblogs.com/yjq520/p/6734422.html 1.@Controller @Controller 用于标记在一个类上,使用它标记的类就是一个Spr ...

  5. poj 1659 Frogs' Neighborhood( 青蛙的邻居)

    Frogs' Neighborhood Time Limit: 5000MS   Memory Limit: 10000K Total Submissions: 9639   Accepted: 40 ...

  6. 【BZOJ 3443】 3443: 装备合成 (离线+线段树)

    3443: 装备合成 Time Limit: 15 Sec  Memory Limit: 128 MBSubmit: 63  Solved: 31 Description [背景]     lll69 ...

  7. [BZOJ4260]Codechef REBXOR(Trie)

    Trie模板题.求出每个前缀和后缀的最大异或和区间,枚举断点就可.不知为何跑得飞快. #include<cstdio> #include<cstring> #include&l ...

  8. 【四边形不等式】HDU3516-Tree Construction

    [题目大意] 给定n个点(x,y),并且保证xi<xj&&yi>yj当i<j.要求建一颗树,树的边只能向上和向右生长,求将所有点都连起来树的长度最小. [思路] 定义 ...

  9. PHP配置文件经典漏洞

    phithon师父在小蜜圈里放了一个经典的配置文件写入问题漏洞. <?phpif(!isset($_GET['option'])) die();$str = addslashes($_GET[' ...

  10. ACM -- 算法小结(一)利用数组存放实现排序

    利用数组存放实现排序    hodj1425   321MS   2011/08 题意:输入n个数字,要求输出从大到小排序的前m个数 解题技巧:利用大数存储在数组后面,小数存储在前面,倒序输出完成从大 ...