Linux 在网络栈中引入了命名空间(Network Namespace),这些独立的协议栈被隔离到不一样的命名空间中。处于不一样命名空间的网络栈是彻底隔离的,彼此之间没法通讯,就好像两个 “平行宇宙”。经过这种对网络资源的隔离,就能在一个宿主机上虚拟多个不一样的网络环境。 网络
Docker 也正是利用了网络的命名空间特性,实现了不一样容器之间网络的隔离。spa
在 Linux 的网络命名空间内能够有本身独立的路由表及独立的 iptables/Netfilter 设置来提供包转发、NAT 及 IP 包过滤等功能。.net