docker隔离技术

docker底层的 2 个核心技术分别是 Namespaces 和 Control groups

namespace:Linux命名空间,实现进程间信息的独立与隔离需要在操作系统内核层面进行实现的

Mount Namespaces:挂载命名空间,用于隔离挂载目录

http://dockerone.com/article/82

为什么要通过Mount namespace隔离挂载目录?
如果说隔离在某个namespace中的程序,可所挂载的目录进行修改,那么另一个nemaspace中运行的程序也能察觉到,这样就在无形之中影响了其他Namespace中程序的运行,显然达不达这样的隔离效果;
所以要进行程序之间的隔离,
首先是要把程序所使用的挂载目录进行隔离,让不同的Nemaspaces拥有独立挂载结构,而程序对挂载信息的修改,也不会影响到其他的namespace中程序的运行;

UTS Namespaces:UTS命名空间,用于隔离主机及网络域等信息

http://dockerone.com/article/76

通过UTS命名空间,可以为不同的Namespaces设置不同的主机名和网络域 能够简单的将程序隔离到一个独立的网络命名空间

IPC Namespaces:用于隔离进程之间的调用,也就是隔离进程之间的通信;

http://dockerone.com/article/79

主要针对系统信号量,消息队列以及共享内存࿱

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Docker 是一种容器化技术,它通过使用操作系统级虚拟化来实现应用程序的隔离Docker 隔离原理主要依赖于以下几个关键技术: 1. Linux 命名空间(Namespaces):Docker 使用多种 Linux 命名空间来隔离不同的系统资源,如进程、网络、文件系统、用户等。每个容器都有自己独立的命名空间,使得容器中运行的进程只能看到自己所在的命名空间中的资源,从而实现了进程级别的隔离。 2. 控制组(Control Groups):Docker 使用控制组来限制和隔离容器对系统资源的使用,如 CPU、内存、磁盘、网络带宽等。通过控制组,可以为每个容器分配一定的资源配额,并且防止容器占用过多的资源影响其他容器或宿主机。 3. 文件系统隔离Docker 使用联合文件系统(UnionFS)来实现容器的文件系统隔离。每个容器都有自己的根文件系统,可以在其中安装和运行应用程序,而不会影响其他容器或宿主机的文件系统。 4. 容器间通信:Docker 提供了网络隔离功能,使得容器可以在自己的网络命名空间中运行,并且可以通过网络与其他容器或宿主机进行通信。每个容器都有自己的网络栈,独立于其他容器和宿主机,从而实现了网络级别的隔离。 综上所述,Docker 利用 Linux 命名空间、控制组、文件系统隔离和网络隔离技术,实现了容器级别的隔离,使得不同的容器可以在同一台宿主机上独立运行,互相不受影响。这种隔离机制使得 Docker 在应用部署、开发测试和环境一致性等方面具有很大的优势。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值