概述

容器化技术在当前云计算、微服务等体系下大行其道,而 Docker 便是容器化技术的典型,对于容器化典型的技术,我们有必要弄懂它,所以这篇文章,我会来分析下 Docker 是如何实现隔离技术的,Docker 与虚拟机又有哪些区别呢?接下来,我们开始逐渐揭开它的面纱。

文件的隔离

了解完进程的隔离,相信你们已经对 Docker 容器的隔离玩法就大概的印象了,我们接下来看看,Docker 内部的文件系统如何隔离,也就是你在 Docker 内部执行 ls 显示的文件夹和文件如何来的。

我们还是以前面的 Docker 命令为例,执行ls

bin   dev   etc   home  proc  root  run   sys   tmp   usr   var

进程的隔离

执行成功后我们就会进入到了 Docker 容器内部,我们执行ps -ef 查看进程

/ # ps -ef
PID   USER     TIME  COMMAND1 root      0:00 /bin/sh8 root      0:00 ps -ef

使用top命令查看进程资源

Mem: 1757172K used, 106080K free, 190676K shrd, 129872K buff, 998704K cached
CPU:  0.0% usr  0.2% sys  0.0% nic 99.6% idle  0.0% io  0.0% irq  0.0% sirq
Load average: 0.00 0.01 0.05 2/497 9PID  PPID USER     STAT   VSZ %VSZ CPU %CPU COMMAND1     0 root     S     1300  0.0   1  0.0 /bin/sh9     1 root     R     1292  0.0   3  0.0 top

而我们在宿主机查看下当前执行容器的进程ps -ef|grep busybox

资源的限制

玩过 Docker 的同学肯定知道,Docker 还是可以限制资源使用的,比如 CPU 和内存等,那这部分是如何实现的呢? 这里就涉及到Linux的另外一个概念Cgroups技术,它是为进程设置资源限制的重要手段,在Linux 中,一切皆文件,所以Cgroups技术也会体现在文件中,我们执行mount -t cgroup 就可以看到Cgroups的挂载情况

参考

  1. http://people.redhat.com/vgoyal/papers-presentations/vault-2017/vivek-overlayfs-and-containers-presentation-valult-2017.pdf
  2. https://docs.docker.com/v17.09/engine/userguide/storagedriver/overlayfs-driver/
  3. https://lwn.net/Articles/259217

Docker实现隔离相关推荐

  1. Docker安全加固——利用LXCFS增强docker容器隔离性和资源可见性

    前言 lxcfs是一个开源的FUSE(用户态文件系统)实现来支持LXC容器. LXCFS通过用户态文件系统,在容器中提供下列 procfs 的文件: /proc/cpuinfo /proc/disks ...

  2. 云原生之Linux命名空间和docker容器隔离

    Docker容器隔离 一.根目录RootFs概述 二.Linux Namespace 2.1.进程命名空间 2.1.1.lsns 命令 2.1.2.查看元祖进程命名空间 2.1.3.查看当前用户进程命 ...

  3. docker的隔离系统

    关于Docker实现原理,简单总结如下: 使用Namespaces实现了系统环境的隔离,Namespaces允许一个进程以及它的子进程从共享的宿主机内核资源(网络栈.进程列表.挂载点等)里获得一个仅自 ...

  4. Docker和宿主机操作系统文件目录互相隔离的实现原理

    我们知道在Docker容器里是无法访问到宿主操作系统的文件目录的,但这种隔离是怎么实现的呢? 其实一点也不神奇--利用了Linux系统的内部命令chroot. chroot能将进程的根目录设置成任意指 ...

  5. 对docker隔离性的理解

    一.关于docker的隔离,有很多文章都有介绍.但docker没有隔离什么呢? SELinux. Cgroups以及/sys./proc/sys./dev/sd*等目录下的资源是与宿主机共用的,而且多 ...

  6. Docker 从入门到精通(建议收藏的教程)

    作者:惨绿少年 来源:https://www.cnblogs.com/clsn/p/8410309.html docker不是一个值得投入的领域,它解决的问题是Unix系统最初设计的一个疏忽.从一个不 ...

  7. 基于Docker的SaaS解决方案

    容器技术加速应用云化 使用Docker的开发者都知道:在日常的运维开发过程中,开发人员和运维人员最大的冲突在于版本的不一致和应用程序的隔离问题.比如说,由于企业内存在开发.测试.预发.生产等N个环境, ...

  8. docker 命令详细解释

    docker命令详解github地址:链接描述如果对你有帮助,请给我star下! 此次操作都是在unbantu17.01下进行,docker版本是17.10.0-ce,docker-compose是1 ...

  9. Docker与FastDFS的安装命令及使用

    Docker特点 1)上手快 用户只需要几分钟,就可以把自己的程序"Docker 化".Docker 依赖于"写时复制" (copy-on-write)模型,使 ...

最新文章

  1. .net web部署(IIS Express Nancy Self-Hosting)
  2. iOS开发-获取设备型号信息
  3. 化工网站开发_西部地区鼓励投资化工(石化)项目征求意见发布
  4. python怎么删除列表创建_Python基础--列表创建访问删除
  5. sts在文件夹中显示_工作中很多问题,巧用Windows 10任务栏,几分钟快速解决
  6. wkwebview 下移20像素_UITableView嵌套WKWebView的那些坑
  7. “大数据与精准营销沙龙”成功在京召开
  8. springBoot配置,贴个图
  9. 安装IBM Data Studio Client
  10. f4 OF DATE FIELD IN DYNPRO PROGRAME
  11. VS2010 中文版本
  12. [Win] 免登录百度网盘高速下载器 ENFI下载器 v1.3.1
  13. 3分钟微信支付商家注册0.2费率开户方法,0.38~0.6的必看
  14. 被称为海淀妈妈四大神器之一的倾听者K3 硬件拆解
  15. npm安装ionic相关设置
  16. 3月6日服务器例行维护公告,热血江湖官方网站·系统公告
  17. 怎么用dos系统进入服务器,如何进入dos系统(非常实用的几个DOS使用技巧)
  18. 华为大数据研发第3轮面试
  19. 第10集丨龙场悟道:阳明心学的诞生
  20. 如何制作GIF表情包,动态GIF怎么做

热门文章

  1. nagios 监控出现It appears as though you do not have permission
  2. 基于JAVA实现的客户信息管理软件(简易)
  3. 爬虫项目——BS4练手(1)
  4. 企业如何进行数据质量评估
  5. idea java 快捷键_图示Javahtml5开发中IDEA的一些常用默认快捷键
  6. utf—8在苹果手机上乱码_UTF-8中文乱码怎么去解决
  7. python1e2_Python-1 数据类型
  8. IDEA Junit测试
  9. oracle估算数据增长,如何估算oracle 数据库,数据库对象历史增长情况
  10. 可变长参数以及面试题