Docker container与宿主进程相互隔离的实现原理

简介: Docker container与宿主进程相互隔离的实现原理

我们都知道在Docker container里运行ps命令是看不到宿主机上运行的进程的。这种程度的隔离是通过什么方式实现的呢?


答案是Linux内部命令unshare。


我第一次执行命令unshare /bin/bash,然后再执行ps -ef --forest,发现通过unshare命令fork的新的进程里,因为其pid和父进程pid的namespace相同,因此ps -ef的结果和在父进程上执行相同。

image.png

下面我还是执行unshare,不过加上参数:

unshare --pid --mount-proc --fork /bin/bash


image.pngimage.png


这样从namespace级别进行了父进程和fork出的子进程的隔离。现在我在子进程里再执行ps -ef --forest, 从结果能发现确实只能看到子进程本身的bash和ps进程了。

image.png

相关文章
|
28天前
|
缓存 自然语言处理 Docker
[Docker] DevContainer高效开发(第一篇):基于remote container开发
VS Code的Dev Containers简化了Python的容器化开发,将开发环境与应用一同打包在Docker中,消除环境配置问题。这种方式使得多语言、多版本开发变得整洁高效。
|
6月前
|
Linux Docker 容器
在Docker守护进程停机期间保持容器运行(即重启Docker时,正在运行的容器不会停止)
在Docker守护进程停机期间保持容器运行(即重启Docker时,正在运行的容器不会停止)
204 0
|
4月前
|
网络协议 应用服务中间件 nginx
一文详解Docker容器(Container)
一文详解Docker容器(Container)
|
5月前
|
Docker 容器
docker run 报错“Container XXX is restarting, wait until the container is running“
docker run 报错“Container XXX is restarting, wait until the container is running“
226 0
|
8月前
|
负载均衡 安全 Linux
【Docker】Docker network之bridge、host、none、container以及自定义网络的详细讲解
【Docker】Docker network之bridge、host、none、container以及自定义网络的详细讲解
319 0
|
8月前
|
应用服务中间件 Linux Shell
Docker(三) 容器间及其容器和宿主间数据共享
Docker(三) 容器间及其容器和宿主间数据共享
233 0
|
9月前
|
Shell Docker Python
docker container的操作
docker container的操作
59 0
|
9月前
|
监控 Java 数据安全/隐私保护
在Docker容器中,有时候无法监控到正在运行的进程
在Docker容器中,有时候无法监控到正在运行的进程
240 2
|
10月前
|
存储 缓存 固态存储
【Docker】浅谈Docker之AUFS、BTRFS、ZFS、Container、分层的概念
【Docker】浅谈Docker之AUFS、BTRFS、ZFS、Container、分层的概念
279 0
|
Docker 容器
Docker:查看container容器的 ip 地址
Docker:查看container容器的 ip 地址
710 0