Docker容器网络模式

1.none网络

1)使用默认网络模式创建一个BusyBox容器,用于对比none网络模式;

Docker容器网络模式_第1张图片

测试网络,可以正常连接外网。

2)再创建一个none网络模式的BusyBox容器;

Docker容器网络模式_第2张图片

测试网络连接,无法连接外网。

总结:none网络模式即容器拥有自己的网络命名空间,但不为容器做任何网络配置,如没有其他的网络配置,该容器将完全独立于网络,用户可以根据需要为容器添加网卡。此模式拥有所有端口。(none网络模式配置网络)

2.host网络

1)运行一个网络模式为host的Nginx容器,并查看容器信息;

Docker容器网络模式_第3张图片

2)使用curl工具测试容器网站是否能够被访问。

Docker容器网络模式_第4张图片

3)在主机上使用浏览器访问 192.168.138.140:80

Docker容器网络模式_第5张图片

总结:host网络模式没有命名空间隔离,相当于docker容器与宿主机公用一个网络,使用宿主机的网卡、IP和端口信息(这点可以在主机浏览器上访问192.168.138.140:80看出),无需使用端口映射,此时容器不再拥有隔离的独立的网络栈。不拥有所有端口资源。

3.bridge网络

1)在后台运行一个命名为test-nginx的容器,并指定它的网络模式为bridge,然后使用brctl show查看网卡信息;

Docker容器网络模式_第6张图片

注:使用命令brctl show命令之前,需要安装网桥工具管理包,安装命令为:

yum install -y bridge-utils

在同一个服务器中,可能运行着多个业务,若这些业务都是用默认端口将会产生冲突,这时就需要容器映射不同的端口。

2)安装Apache服务;

Docker容器网络模式_第7张图片

3)启动服务,然后通过查看端口的形式验证Apache是否正常运行;

Docker容器网络模式_第8张图片

4)在后台运行一个命名为test2-nginx的Nginx容器,并将容器80端口映射到宿主机的8000端口,访问宿主机的8000端口;

Docker容器网络模式_第9张图片

5)访问80端口即Apache服务;

Docker容器网络模式_第10张图片

从以上操作可以看出,通过宿主机的8000端口可以正常访问Nginx容器,通过宿主机的80端口可以正常访问Apache服务。

通过端口映射,容器与容器、容器与宿主机的业务之间就不会出现冲突,保证业务都能够正常范围。

总结:bridge网络模式是docker默认的网络模式,受docker管理的linux桥接网络。默认同一个桥的容器可以相互通讯。

4.container网络

1)创建一个容器,命名为test2,此容器的网络模式默认为bridge,然后查看容器IP信息。

Docker容器网络模式_第11张图片

可以看到此容器的IP地址为172.17.0.8

2)创建一个被命名位test-container的BusyBox容器,并共享test2的网络命名空间。

Docker容器网络模式_第12张图片

总结:container网络模式指定新容器和已存在容器共享一个网络命名空间,这种模式拥有网络隔离,可以在一定程度上节省网络资源,容器内部依然不会拥有所有端口。

你可能感兴趣的:(容器,网络,docker)