y21.第二章 Docker基础入门 -- Docker namespace(三)

1.6 docker namespace简介

在这里插入图片描述
但是,如上图一个宿主机运行了N 个容器,多个容器带来的以下问题怎么解决:

1.怎么样保证每个容器都有不同的文件系统并且能互不影响?

2.一个docker 主进程内的各个容器都是其子进程,那么实现同一个主进程下不同

类型的子进程?各个进程间通信能相互访问(内存数据)吗?

3.每个容器怎么解决IP 及端口分配的问题?

4.多个容器的主机名能一样吗?

5.每个容器都要不要有root 用户?怎么解决账户重名问题?

以上问题怎么解决?

namespace是Linux系统的底层概念,在内核层实现,即有一些不同类型的命名空间被部署在内核,各个docker容器运行在同一个docker主进程并且共用同一个宿主机系统内核,各docker容器运行在宿主机的用户空间,每个容器都要有类似于虚拟机一样的相互隔离的运行空间,但是容器技术是在一个进程内实现运行指定服务的运行环境,并且还可以保护宿主机内核不受其他进程的干扰和影响,如文件系统空间、网络空间、进程空间等,目前主要通过以下技术实现容器运行空间的相互隔离:

隔离类型 功能 系统调用参数 内核版本
MNT Namespace(mount) 提供磁盘挂载点和文件系统的隔离能力 CLONE_NE

猜你喜欢

转载自blog.csdn.net/qq_25599925/article/details/124002475