认识
一、认识
在 Docker
中,Namespace
(命名空间)是 Linux
内核提供的一种隔离机制,用于隔离容器之间的资源,确保容器在一个独立的环境中运行。Docker
使用多个不同类型的命名空间来实现这种隔离。以下是 Docker
中常用的命名空间类型及其功能:
-
PID Namespace
:PID(进程 ID)
命名空间隔离 进程的PID
,使得每个容器中的进程看不到其他容器中的进程。每个容器都有自己的PID
命名空间,容器内的PID
从1
开始。 -
NET Namespace
:NET
(网络)命名空间 为每个容器提供独立的网络栈,包括网络接口、IP
地址、路由表等。这样,容器之间的网络隔离可以通过网络命名空间实现。 -
MNT Namespace
:MNT
(挂载)命名空间隔离 文件系统挂载点。每个容器都有自己的挂载命名空间,可以独立挂载和卸载文件系统,而不会影响其他容器或主机系统。 -
UTS Namespace
:UTS(UNIX Time-sharing System)
命名空间隔离 主机名和域名。每个容器可以有自己的主机名和域名,这样可以在容器内部使用不同的主机名。 -
IPC Namespace
:IPC
(进程间通信)命名空间隔离系统的IPC
资源,如信号量、消息队列和共享内存段,使得这些资源在不同容器之间不会冲突。 -
USER Namespace
:USER
(用户)命名空间 允许在容器内以非特权用户身份运行进程,同时在主机上映射到不同的用户。这样可以提高安全性,减少容器内进程对主机系统的影响。
Docker
通过命名空间实现了容器之间的隔离,确保每个容器都在一个独立的环境中运行。
二、语法
1. 创建一个隔离的容器
docker run -it --name test-container ubuntu:latest
在这个命令中,我们创建了一个名为 test-container
的容器。此时,容器具有自己的 PID
、NET
、MNT
、UTS
、IPC
和 USER
命名空间。