docker基本元素和底层实现
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基本元素和底层实现的更多相关文章
- 四:(之一和之二) docker架构和底层技术分析(C/S架构)
1.架构和底层技术 Docker Host提供了RESTUL api,使docker client可以通过这些命令调用dockerd. Registry是一个公用的存储镜像的容器,类似于github. ...
- 5、Docker架构和底层技术
5.1 Docker Platform Docker提供了一个开发,打包,运行APP的平台 把APP和底层infrastructure隔离开来 5.2 Docker Engine 后台进程(docke ...
- docker 6 docker运行的底层原理
docker是一个client-server结构的系统,docker守护进程运行在主机上,然后通过socket连接从客户端访问,守护进程从客户端接收命令并管理运行在主机上的容器,是一个运行时的环境,就 ...
- docker – 你应该知道的10件事
容器并不是一个全新的技术,但这并不妨碍Docker如风暴一样席卷整个世界. 如果你在IT圈里,你一定听说过Docker.就算与其他热门技术,如:Puppet/Chef,Hadoop或者MongoD ...
- Docker容器概念讲解
Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源. Docker是通过内核虚 ...
- docker interact example
此为docker 第一篇,插下杂七杂八的东西,好找,就这么简单,,,, yum -y install docker-io //install cp /var/tmp/cap.data /var/lib ...
- docker note from UC blog
-------------------------------------------------------------------------- original url http://tech. ...
- 关于Docker在测试方面的应用
Docker 火了很长一段时间了,前段时间简单的学习和试玩了一下子,发现他对测试很有价值,觉得有必要再次深入研究. 这里标记一些较好的学习网址,用作参考: InfoQ上面有系列的文章: 深入浅出Doc ...
- 用Dockerfile构建docker image
dockerfile是为快速构建docker image而设计的,当你使用docker build 命令的时候,docker 会读取当前目录下的命名为Dockerfile(首字母大写)的纯文本文件并执 ...
随机推荐
- lr_get_transaction_duration 函数介绍
lr_get_transaction_duration 用于获取事务所消耗的时间. 实例: Action() { double trans_time; //定义变量 web_url("www ...
- thinkphp5.0命名空间
命名空间 ThinkPHP采用命名空间方式定义和自动加载类库文件,有效的解决了多模块和Composer类库之间的命名空间冲突问题,并且实现了更加高效的类库自动加载机制. 如果不清楚命名空间的基本概念, ...
- IntelliJ IDEA 编译程序出现 非法字符 的 解决方法(转)
百度到很多方法,比如(删了文件重新建:先改成GBK再UTF8:粘贴到notpad++上改utf8),但都没有解决问题.下面这种方法确实有效,先记下来,如果有其他好方法将来在补充…… 文章来源: ht ...
- 洛谷P3435 [POI2006]OKR-Period of Words [KMP]
洛谷传送门,BZOJ传送门 OKR-Period of Words Description 一个串是有限个小写字符的序列,特别的,一个空序列也可以是一个串. 一个串P是串A的前缀, 当且仅当存在串B, ...
- 在phpWeChat中如何定义一个授权登录(获取昵称)的链接
在phpWeChat中如何定义一个授权登录(获取昵称)的超链接?使其点击后出现如下效果? 由于集成了这个功能,其实这个需要是很简单的. 假如您想在授权后跳转到http://www.baidu.com/ ...
- Python开发基础-Day33 IO模型
IO模型分类 五种IO Model blocking IO 阻塞IO nonblocking IO 非阻塞IO IO multiplexing IO多路复用 signal driven IO 信号驱动 ...
- Host aggregate分区
问题描述:生产区一期环境增加4台计算结点,希望被大数据租户独占1. 该大数据用户创建的虚拟机必须被调度到这4个计算结点2. 其他租户创建虚拟机禁止调度到这4台机器 标黄的需要自行根据情况修改解决方案: ...
- BZOJ 4276: [ONTAK2015]Bajtman i Okrągły Robin
最大权值匹配,贪心匈牙利即可. 检查一些人是否能被全部抓住可以采用左端点排序,右端点优先队列处理. By:大奕哥 #include<bits/stdc++.h> using namespa ...
- Week One
2018.11.21: 1.[BZOJ 4868][SHOI 2017] 从后往前枚举最后位置即可,如果$A<B$,用尽可能多的$A$替换$B$操作 Tip:很大的$C$可能爆$longlong ...
- 【BZOJ2763/洛谷p4563】【分层图最短路】飞行路线
2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 4630 Solved: 1797[Submit][Stat ...