标签:docker 隔离
一、关于docker的隔离,有很多文章都有介绍。但docker没有隔离什么呢?
SELinux、 Cgroups以及/sys、/proc/sys、/dev/sd*等目录下的资源是与宿主机共用的,而且多个container与宿主机共用同一个内核。所以说docker是弱隔离,他没有隔离的那么彻底,但如果要隔离的彻底那就是VM了,而且如果dockers要想实现这些隔离就必然要牺牲一下现在轻量级的特性。
二、以下是我对docker的隔离性的理解
docker 通过什么实现隔离呢?通过内核的namespace,包括进程、网络、进程间通信信号、文件系统、用户等,不同的docker使用不同的namespace.
1、进程的namespace, docker container里运行的进程的父进程是这个docker container的进程。这样不同的container 之间进程就被隔离开了。
2、网络的namespace ,每个container 都有自己的虚拟网络设备,IP地址,路由。
3、进程间交互的namespace,每个container 内的进程可以实现进程进的信号、共享内存、消息队列的交互
4、mnt的namespace ,不同的namespacer进程看到的文件结构是不同的
5、UTS 的namespace ,不同的container 可以有自己的hostname和domainame
6、用户的namespae,每个container可以有自己的用户和用户分组
本文出自 “一路运维” 博客,请务必保留此出处http://zhangkechen.blog.51cto.com/907591/1688521
标签:docker 隔离
原文地址:http://zhangkechen.blog.51cto.com/907591/1688521