设为首页 收藏本站
查看: 618|回复: 0

[经验分享] docker理论

[复制链接]

尚未签到

发表于 2018-5-29 08:19:21 | 显示全部楼层 |阅读模式
Docker理论
Docker 是一个开源的应用容器引擎,主要利用 linux 内核 namespace 实现沙盒隔离,用cgroup 实现资源限制。
Docker项目的目标是实现轻量级的操作系统虚拟化解决方案。
Docker的基础是Linux的容器技术(LXC)。
而Docker,正是在容器的基础上进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作Docker的容器就像操作一个快速轻量级的虚拟机一样简单。


DSC0000.png
  
VM是在硬件层面实现虚拟化
DSC0001.png
Docker几乎没有使用虚拟化的东西,直接复用了host主机的os,是内核级的虚拟化
docker优势:
(1)Docker容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多。
(2)其次,Docker对系统资源的利用率很高,一台主机上可以同时运行数千个Docker容器。而且容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。


  1.Docker包括三个基本概念
镜像(Image) 镜像就是一个只读的模板
容器(Container) 运行应用
仓库(Repository) 集中存放镜像文件的场所,分为公有仓库和私有仓库2种形式

DSC0002.png


  2.网络管理
DSC0003.png

  容器的四种网络模式
  bridge 桥接模式、host 模式、container 模式和 none 模式
  启动容器时可以使用 --net 参数指定,默认是桥接模式
  
  Bridge
  
DSC0004.png
(1) 利用 veth pair 技术,在宿主机上创建两个虚拟网络接口设备,假设为veth0 和 veth1。而 veth pair 技术的特性可以保证无论哪一个 veth 接收到网络报文,都会将报文传输给另一方
(2) 将 veth0 附加到docker0 网桥上。保证宿主机的网络报文可以发往 veth0
(3) 将 veth1 添加到容器所属的 namespace 下,并被改名为 eth0。
如此一来,保证宿主机的网络报文若发往 veth0,则立即会被 eth0 接收,实现宿主机到容器网络的联通性;同时,也保证 容器单独使用 eth0,实现容器网络环境的隔离性。
缺点:和宿主机以外的网络通信比较困难

  Host
  
DSC0005.png
可以直接使用宿主机的 IP 地址与外界进行通信,若宿主机的 eth0 是一个公有 IP,那么容器也拥有这个公有 IP。同时容器内服务的端口也可以使用宿主机的端口。
缺点:容器不再拥有隔离、独立的网络栈,会和宿主机发生资源抢夺

  Container
DSC0006.png
(1) 查找其他容器(即需要被共享网络环境的容器)的网络
(2) 将新创建的容器(也是需要共享其他网络的容器)的namespace,使用其他容器的namespace。
可以用来更好的服务于容器间的通信。可以通过 localhost 来访问 namespace 下的其他容器,传输效率较高。虽然多个容器共享网络环境,但是多个容器形成的整体依然与宿主机以及其他容器形成网络隔离。另外,这种模式还节约了一定数量的网络资源。
缺点:它并没有改善容器与宿主机以外世界通信的情况。

  None
不属于任何的网络环境。容器内部就只能使用 loopback 网络设备,不会再有其他的网络资源。
但是可以在没有网络配置的情况下,做其他无限多可能的网络定制开发。这也恰巧体现了 Docker 设计理念的开放。
  
  3.安全问题
评估Docker的安全性时,主要考虑3个方面:
由内核中名字空间namespace和控制组cgroups提供的容器的内在安全
Docker程序本身的抗攻击性
加固内核安全性来影响容器的安全性:白名单,黑名单,selinux等

  4.分布式,多点运行,高可用
Docker compose
Docker swarm
Docker mesos

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-482355-1-1.html 上篇帖子: docker启动后容器无法上网 下篇帖子: 1 docker简介和安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表