跳到主要内容

认识

2024年08月06日
柏拉文
越努力,越幸运

一、认识


Docker 中,Namespace(命名空间)是 Linux 内核提供的一种隔离机制,用于隔离容器之间的资源,确保容器在一个独立的环境中运行。Docker 使用多个不同类型的命名空间来实现这种隔离。以下是 Docker 中常用的命名空间类型及其功能:

  1. PID Namespace: PID(进程 ID)命名空间隔离 进程的 PID,使得每个容器中的进程看不到其他容器中的进程。每个容器都有自己的 PID 命名空间,容器内的 PID1 开始。

  2. NET Namespace: NET(网络)命名空间 为每个容器提供独立的网络栈,包括网络接口、IP 地址、路由表等。这样,容器之间的网络隔离可以通过网络命名空间实现。

  3. MNT Namespace: MNT(挂载)命名空间隔离 文件系统挂载点。每个容器都有自己的挂载命名空间,可以独立挂载和卸载文件系统,而不会影响其他容器或主机系统。

  4. UTS Namespace: UTS(UNIX Time-sharing System)命名空间隔离 主机名和域名。每个容器可以有自己的主机名和域名,这样可以在容器内部使用不同的主机名。

  5. IPC Namespace: IPC(进程间通信)命名空间隔离系统的 IPC 资源,如信号量、消息队列和共享内存段,使得这些资源在不同容器之间不会冲突。

  6. USER Namespace: USER(用户)命名空间 允许在容器内以非特权用户身份运行进程,同时在主机上映射到不同的用户。这样可以提高安全性,减少容器内进程对主机系统的影响。

Docker 通过命名空间实现了容器之间的隔离,确保每个容器都在一个独立的环境中运行。

二、语法


1. 创建一个隔离的容器

docker run -it --name test-container ubuntu:latest 

在这个命令中,我们创建了一个名为 test-container 的容器。此时,容器具有自己的 PIDNETMNTUTSIPCUSER 命名空间。