将 "名字空间" 改为 "命名空间"

Namespace 术语一般的翻译是"命名空间",参见 <https://zh.wikipedia.org/zh-cn/%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4>

Signed-off-by: Tao Wang <twang2218@gmail.com>
This commit is contained in:
Tao Wang
2016-11-15 06:56:29 +11:00
parent 3e0c0c6ef6
commit a37cf1b88c
9 changed files with 32 additions and 32 deletions

View File

@@ -1,22 +1,22 @@
## 名空间
空间是 Linux 内核一个强大的特性。每个容器都有自己单独的名空间,运行在其中的应用都像是在独立的操作系统中运行一样。名空间保证了容器之间彼此互不影响。
## 名空间
名空间是 Linux 内核一个强大的特性。每个容器都有自己单独的名空间,运行在其中的应用都像是在独立的操作系统中运行一样。名空间保证了容器之间彼此互不影响。
### pid 名空间
不同用户的进程就是通过 pid 名空间隔离开的,且不同名空间中可以有相同 pid。所有的 LXC 进程在 Docker 中的父进程为Docker进程每个 LXC 进程具有不同的名空间。同时由于允许嵌套,因此可以很方便的实现嵌套的 Docker 容器。
### pid 名空间
不同用户的进程就是通过 pid 名空间隔离开的,且不同名空间中可以有相同 pid。所有的 LXC 进程在 Docker 中的父进程为Docker进程每个 LXC 进程具有不同的名空间。同时由于允许嵌套,因此可以很方便的实现嵌套的 Docker 容器。
### net 名空间
有了 pid 名空间, 每个名空间中的 pid 能够相互隔离,但是网络端口还是共享 host 的端口。网络隔离是通过 net 名空间实现的, 每个 net 名空间有独立的 网络设备, IP 地址, 路由表, /proc/net 目录。这样每个容器的网络就能隔离开来。Docker 默认采用 veth 的方式,将容器中的虚拟网卡同 host 上的一 个Docker 网桥 docker0 连接在一起。
### net 名空间
有了 pid 名空间, 每个名空间中的 pid 能够相互隔离,但是网络端口还是共享 host 的端口。网络隔离是通过 net 名空间实现的, 每个 net 名空间有独立的 网络设备, IP 地址, 路由表, /proc/net 目录。这样每个容器的网络就能隔离开来。Docker 默认采用 veth 的方式,将容器中的虚拟网卡同 host 上的一 个Docker 网桥 docker0 连接在一起。
### ipc 名空间
容器中进程交互还是采用了 Linux 常见的进程间交互方法(interprocess communication - IPC), 包括信号量、消息队列和共享内存等。然而同 VM 不同的是,容器的进程间交互实际上还是 host 上具有相同 pid 名空间中的进程间交互,因此需要在 IPC 资源申请时加入名空间信息,每个 IPC 资源有一个唯一的 32 位 id。
### ipc 名空间
容器中进程交互还是采用了 Linux 常见的进程间交互方法(interprocess communication - IPC), 包括信号量、消息队列和共享内存等。然而同 VM 不同的是,容器的进程间交互实际上还是 host 上具有相同 pid 名空间中的进程间交互,因此需要在 IPC 资源申请时加入名空间信息,每个 IPC 资源有一个唯一的 32 位 id。
### mnt 名空间
类似 chroot将一个进程放到一个特定的目录执行。mnt 名空间允许不同名空间的进程看到的文件结构不同,这样每个名空间 中的进程所看到的文件目录就被隔离开了。同 chroot 不同,每个名空间中的容器在 /proc/mounts 的信息只包含所在名空间的 mount point。
### mnt 名空间
类似 chroot将一个进程放到一个特定的目录执行。mnt 名空间允许不同名空间的进程看到的文件结构不同,这样每个名空间 中的进程所看到的文件目录就被隔离开了。同 chroot 不同,每个名空间中的容器在 /proc/mounts 的信息只包含所在名空间的 mount point。
### uts 名空间
UTS("UNIX Time-sharing System") 名空间允许每个容器拥有独立的 hostname 和 domain name, 使其在网络上可以被视作一个独立的节点而非 主机上的一个进程。
### uts 名空间
UTS("UNIX Time-sharing System") 名空间允许每个容器拥有独立的 hostname 和 domain name, 使其在网络上可以被视作一个独立的节点而非 主机上的一个进程。
### user 名空间
### user 名空间
每个容器可以有不同的用户和组 id, 也就是说可以在容器内用容器内部的用户执行程序而非主机上的用户。
*注:关于 Linux 上的名空间,[这篇文章](http://blog.scottlowe.org/2013/09/04/introducing-linux-network-namespaces/) 介绍的很好。
*注:关于 Linux 上的名空间,[这篇文章](http://blog.scottlowe.org/2013/09/04/introducing-linux-network-namespaces/) 介绍的很好。