
Docker 网路详解
概述
众所周知,Docker 是一种虚拟化技术,具有和虚拟机同样的优点。比如容器内部和外部环境是隔离的,而且它还具备跨平台的特性。现在主流的操作系统Windows、Linux、Mac都支持Docker技术。
Docker 的网络知识点非常重要,但对初学Docker的同学而言,却难以掌握,本文就对这一知识点进行详细的说明。
我们可以通过下面的命令查看Docker 的网络类型docker network ls

可以看出Docker 的网络类型共有三种:
- bridge
- host
- none
bridge 网络类型
Docker 默认创建bridge连接网络。它会为容器分配一个子网IP,通常是以“172.17.0.x”的形式分配。我们可以通过docker inspect查看。

如果 Docker 以 bridge 类型创建网络,相当在主机中创建了一个子网。这个子网的网关是172.17.0.1,通过桥接的方式连接上主机,实现网络互通。
host 网络类型
host 的意思是共享主机网络,在Linux环境下,就是主机IP。Windows环境下,是一个主机能够访问的虚拟IP。值得一提的是,无论是哪种操作系统它占有的端口,都是主机的端口号。
这种方式创建的容器,不需要指定端口映射。缺点是,容器和主机环境的网络隔离性消失了。所以,实践中用的少。
none 网络类型
顾名思义,none类型不会为容器分配任何IP,主机和其他容器都不能通过网络访问他,其表现是与外界完全隔离。
本文围绕Docker网络类型展开,介绍了其作为虚拟化技术的特点及主流操作系统对它的支持。详细说明了三种网络类型:bridge是默认类型,为容器分配子网IP;host共享主机网络,无需端口映射但隔离性差;none不为容器分配IP,与外界完全隔离。

被折叠的 条评论
为什么被折叠?



