栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Docker容器的网络通信管理

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker容器的网络通信管理

文章目录
  • 前言
  • 一、Docker的原生网络模式
    • 1.brideg网络模型
    • 2.host网络模型
    • 3.none网络模型
  • 二、自定义网络的使用方式
    • 1.bridge模式
  • 三、容器之间的通信
    • 1.dns解析功能定义
    • 2.Joined模式
  • 四、跨主机之间的容器通信
    • 1.macvlan网络结构
  • 总结


前言
一、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	#交互式开启容器即可


总结
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/894253.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号