文章目录
绪论
----docker是比较流行的容器技术,docker镜像方便程序员对应用统一的要求,打包部署便捷。但是不足的地方在于docker的网络方面。docker有4种网络模式,分别是host模式、container模式、none模式、bridge模式。分别使用–net指定,–net=host、–net=container:容器名或ID、–net=bridge分别指定各种模式。
Host模式
----host模式相当于Vmware中的桥接模式,与宿主机在同一个网络中,但是没有独立的IP地址。docker使用Linux的Namespace隔离网络等设施。一个Network Namespace 提供了一份独立的网络环境,包括网卡、路由、Iptable规则等都与其他的Network Namespace隔离。当我们启动容器指定其网络模式为host时,启动指定命令如下 docker run --name xxx --net=host xxxx,此处使用–net指定docker容器所使用的网络模式。
----在使用host模式时,容器将不会获得一个独立的Network Namespace,不会模拟出自己的网卡、配置自己的ip等。而是和宿主机共用一个namespace。所有此模式使用的网络和宿主机上的网络是相同的。
container模式
container模式是将辛创建的容器和已经存在的容器共享一个Network Namespace ,而不是和宿主机共享。在创建容器时指定容器,就会共享被指定的容器的ip、端口等。两个容器仅仅是网络共享,其他当面还是隔离的,如文件系统、进程列表等等。俩个容器之间通过IO网卡进行本地通信。