docker网络--跨主机容器通信

本文介绍了如何实现跨主机容器通信,探讨了docker原生的overlay和macvlan网络方案,以及第三方的flannel、weave、calico。同时,讲解了docker的CNM网络模型,以及macvlan网络的实现和工作原理,强调了macvlan在二层网络的隔离性和三层网络的连通性,并列举了docker network的相关命令。
摘要由CSDN通过智能技术生成

1.实现跨主机网络解决方案:
(1)docker原生的overlay和macvlan
(2)第三方的flannel、weave、calico
2.众多网络方案与docker集成方法:
(1)ibnetwork docker容器网络库
(2)CNM 对容器网络进行抽象
CNM的三类组件
Sandbox:容器网络线,包括容器接口、dns、路由表
Endpoint:将sandbox接入network
Network:包含一组endpoint,同一network的endpoint可以进行通信
3.macvlan网络方案实现
Linux内核提供的一种网卡虚拟化技术
无需linux bridge,直接使用物理接口,性能极好
实验前提:
两台虚拟机
172.25.4.111 server1
172.25.4.112 server2
两台虚拟机各自再添加一块物理网卡

[root@server1 ~]# ip addr show
6: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 52:54:00:70:4e:0d brd ff:ff:ff:ff:ff:ff

[root@server2 ~]# ip addr show
5: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 52:54:00:bf:79:b8 brd ff:ff:ff:ff:ff:ff

打开网络混杂模式

[root@server1 ~]# ip link set up eth1  ##激活网卡
[root@server1 ~]# ip link set eth1 promisc on  ##开启混杂模式
[root@server1 ~]# ip addr show eth1
7: eth1: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:42:36:bd brd ff:ff:ff:ff:ff:ff
    inet6 fe80::5054:ff:fe42:36bd/64 scope link 
       valid_lft forever preferred_lft forever

[root@server2 ~]# ip link set up eth1
[root@server1 ~]# ip link
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一种基于容器的虚拟化技术,它提供了一种轻量级的容器化解决方案,可以将应用程序及其依赖项打包到一个可移植的容器中,以便在任何地方运行。在Docker中,容器之间的通信是通过网络实现的,在本文中,我们将详细介绍Docker中的网络通信Docker中的网络类型 Docker提供了四种不同类型的网络,分别是: 1. 桥接网络(Bridge Network):桥接网络Docker的默认网络,它允许容器之间相互通信,并且可以与主机通信。在桥接网络中,每个容器都有一个独立的IP地址,并且可以通过容器名称或IP地址进行访问。 2. 主机网络(Host Network):主机网络容器直接连接到主机网络上,容器主机共享同一个网络接口和IP地址,因此可以与主机网络上的其他设备进行通信。 3. 网络绑定(None Network):网络绑定不为容器配置任何网络,这意味着容器无法通过网络与外界进行通信。通常,这种网络类型用于测试和调试容器应用程序。 4. Overlay网络(Overlay Network):Overlay网络用于主机容器之间的通信。它允许在多个主机上运行分布式应用程序,并提供了自动发现和负载均衡的功能。 Docker网络配置 在Docker中,可以使用docker network命令来管理网络。可以使用以下命令创建一个新的桥接网络: ``` docker network create my-network ``` 可以通过以下命令将容器添加到网络中: ``` docker run --name my-container --network my-network my-image ``` 在此命令中,--network选项指定要将容器添加到的网络名称。 可以使用以下命令列出所有可用的网络: ``` docker network ls ``` 可以使用以下命令查看特定网络的详细信息: ``` docker network inspect my-network ``` 在Docker中,还可以使用--link选项将一个容器链接到另一个容器。这将创建一个虚拟网络接口,允许容器之间进行通信。以下命令将容器my-container链接到容器my-other-container: ``` docker run --name my-container --link my-other-container my-image ``` 在此命令中,--link选项指定要链接的容器名称。 总结 在Docker中,容器之间的通信是通过网络实现的。Docker提供了四种不同类型的网络,包括桥接网络主机网络网络绑定和Overlay网络。可以使用docker network命令来管理网络,可以使用--link选项将一个容器链接到另一个容器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值