Docker容器的网络通信管理


前言


一、Docker的原生网络模式

1.brideg网络模型

bridge模式下容器没有一个公有ip,只有宿主机可以直接访问,外部主机是不可见的。通过将其他的容器网络模式,因为没有公网ip所以可以直接使用源质转换进行数据的互通方式

启动容器后即可看到为bridge模式使用默认的网桥进行桥接外部主机无法访问
在这里插入图片描述

2.host网络模型

host模式可以让容器共享宿主机网络栈,这样的好处是外部主机与容器直接通信,但是容器的网络缺少隔离性。

docker run -it --rm --name rhel7 --network host rhel7 bash

在这里插入图片描述

3.none网络模型

none模式是指禁用网络功能,只有lo接口,在容器创建时使用

 docker run -it --rm --name rhel7 --network none rhel7 bash

二、自定义网络的使用方式

1.bridge模式

bridge驱动类似默认的bridge网络模式,将数据桥接到另一个容器上

docker network create -d bridge nework3 		#-d指定驱动模式

在这里插入图片描述在这里插入图片描述

docker network create --subnet 172.10.0.0/24 --gateway 172.10.0.1 network 	#--subnet表示指定网段--gateway表示指定网关一般为第一个

在这里插入图片描述

三、容器之间的通信

1.dns解析功能定义

docker run -it --name rhel --network network --ip 172.10.0.3 rhel7 bash		#--ip指定容器的ip,--name可以知指定容器的名称以及容器的内嵌的dns解析名称

在这里插入图片描述在这里插入图片描述

2.Joined模式

处于这个模式下的 Docker 容器会共享一个网络栈,这样两个容器之间可以使用localhost高效快速通信。即容器和容器之间进行网络的共享

docker run -it --rm --network container:demo --name demo1 ubuntu

四、跨主机之间的容器通信

1.macvlan网络结构

特点:没有新建linux bridge
容器的接口直接与主机网卡连接,无需NAT或端口映射。
macvlan会独占主机网卡,但可以使用vlan子接口实现多macvlan网络
vlan可以将物理二层网络划分为4094个逻辑网络,彼此隔离,vlan id取值为1~4094。

ip link set eth1 promisc on			#打开网卡的混杂模式否则会在创建时开始报错
ip link set eth1 up					#假设为新加的网卡则需要开启网卡才能生效否则无法生效
docker network create -d macvlan --subnet 172.20.0.0/24 --gateway 172.20.0.1 -o parent=eth1 network					#指定网络模式为macvlan即可
docker run --rm -it --name demo --network network --ip 172.15.0.100 busybox	#交互式开启容器即可

在这里插入图片描述在这里插入图片描述


总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值