Docker container与宿主进程相互隔离的实现原理
2023-09-14 09:03:10 时间
我们都知道在Docker container里运行ps命令是看不到宿主机上运行的进程的。这种程度的隔离是通过什么方式实现的呢?
答案是Linux内部命令unshare。
我第一次执行命令unshare /bin/bash,然后再执行ps -ef --forest,发现通过unshare命令fork的新的进程里,因为其pid和父进程pid的namespace相同,因此ps -ef的结果和在父进程上执行相同。
下面我还是执行unshare,不过加上参数:
unshare --pid --mount-proc --fork /bin/bash
这样从namespace级别进行了父进程和fork出的子进程的隔离。现在我在子进程里再执行ps -ef --forest, 从结果能发现确实只能看到子进程本身的bash和ps进程了。
相关文章
- Docker镜像,容器和仓库到底是什么?
- docker 权限问题 Got permission denied while trying to connect to the Docker daemon socket at 。。。「建议收藏」
- docker安装wordpress
- centos7.4安装docker_docker运行centos
- docker的常用命令汇总_Docker命令
- docker部署Nexus
- ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon runn
- docker-compose 安装nginx manager
- Docker 离线安装_docker官方中文文档
- 简述linux系统的目录层次结构_docker 目录
- Docker - docker-compose方式搭建高效的开发环境
- Docker安装docker-compose插件
- Docker安装mysql5.7
- Docker服务的拉取镜像命令(docker pull 镜像名称)
- Docker服务的删除本地镜像命令(docker rmi 镜像id)
- 【好玩儿的Docker项目】10分钟搭建一个巨好用的粘贴板工具——MicroBin
- 【Docker 系列】docker 学习 五,容器数据卷
- 【Docker 系列】docker 学习十,Compose 编写规则及wp 实战
- 【Docker 系列】docker 学习十一,docker 总结和面试题整理
- docker 使用自定义IP,原理及其实现
- Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running
- 使用Docker安装Redis并配置成功(docker安装redis)
- Docker给MacOS带来的变革(dockermacos)
- Docker 公司与阿里云达成合作,在中国提供 Docker Hub 服务
- Red Hat 的去 Docker 化容器实践
- docker用Docker构建Redis集群的步骤(redis集群使用)