最近公司使平台网络更加灵活,满足更多网络需求,所以研究docker的几种网络模式,在此记录一下,便于后期查看。
 
 
一、docker安装完成后默认的创建了host 、bridge、none三种网络模式:其中none这次不是研究的重点
 
容器网络-多种网络模式正在上传…重新上传取消容器网络-多种网络模式
 
1、none 网络使用场景一般比较少见,主要应用于安全性比较高的场景,且不需要与外部进行通信的任务。
 
示例:使用--network 指定网络模式简写 --net
docker run -dit --net=none --name=bbox3 busybox 运行一个docker容器 指定none模式
 
docker exec -it f6e86cecb64c /bin/sh   进入容器查看 只有lo回环地址
 
容器网络-多种网络模式转存失败重新上传取消容器网络-多种网络模式
 
验证  ping www.baidu.com:
 
容器网络-多种网络模式转存失败重新上传取消容器网络-多种网络模式
 
验证  ping 127.0.0.1:
 
容器网络-多种网络模式转存失败重新上传取消容器网络-多种网络模式
 
容器网络-多种网络模式转存失败重新上传取消容器网络-多种网络模式
 
无需和外部网络进行通信的场景
 
 
2、使用host网络的容器,和宿主机共享网络栈,容器的端口和IP,容易发生冲突,多个容器无法对外暴露相同的端口。有点效率高
 
     指定host模式的容器,可以通过宿主机的ip和端口访问容
 
示例:使用--network 指定网络模式简写 --net
 
docker run -dit --net=host --name=nginx1 nginx 运行一个docker容器 指定host模式(通常请求下,宿主机访问访问容器内部得做端口的映射才可以)
 
docker run -dit --net=host --name=bbox4 busybox
 
容器网络-多种网络模式转存失败重新上传取消容器网络-多种网络模式
 
docker exec -it 292abce5491b /bin/sh   进入容器查看 然后在宿主机执行ifconfig 对比下面内容
 
docker exec -it 5d8581b971f4 /bin/sh 
容器网络-多种网络模式转存失败重新上传取消容器网络-多种网络模式
 
宿主机ifconfig
 
容器网络-多种网络模式转存失败重新上传取消容器网络-多种网络模式
 
     host主机模式能够支撑容器的跨主机通信(因为容器和宿主机使用的是同一network namespace,引申为不同的容器之间的通信实际上是宿
 
主机之间的通信)【但是存在弊端,同一宿主机上的多个容器不能使用同一端口,这种模式并没有充分发挥到容器的隔离特性,容器和容器之间共
 
享宿主机共享栈】
 
主要用于跨主机的容器之间的通信(一般大规模部署的情况下,这种模式不常用)
 
3、bridge模式(容器的默认网络模式,这里不做过多的解释,直接上图,自己画了一个图)
    
    总的概括就是docker0网桥+两个虚拟网卡的实现方式.容器间通过网桥的方式传递数据包。
 
容器网络-多种网络模式转存失败重新上传取消容器网络-多种网络模式
 
 
4、macvlan模式:一些传统的应用或者监控应用需要直接使用主机的物理网络、可以采取macvlan模式,macvlan是直接在HOST网卡上创建多个子网卡,并分配独立的IP和mac地址,把子网卡分配给容器实
 
例、从而实现容器实例和物理网络的直通,并同时保持了容器实例的隔离性。   host主机收到数据包后,根据不同的mac地址将数据包转发到不同的子网

相关文章:

  • 2022-01-15
  • 2022-01-17
  • 2021-10-14
  • 2021-05-15
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-10-17
  • 2021-07-31
  • 2021-10-04
  • 2022-12-23
  • 2021-11-23
  • 2021-05-28
  • 2021-05-06
相关资源
相似解决方案