Docker跨主机通信之路由

一、实验环境:


主机名


主机IP


Docker0_IP


Docker1


192.168.88.130


172.17.0.1


Docker2


192.168.88.131


172.18.0.1

二、实验操作

设定指定的dokcer0的IP

#vim /usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/docker daemon --bip=172.18.42.1/16 -H fd:// -H=unix:///var/run/docker.sock

systemctl daemon-reload

systemctl restart docker????????????????#有可能docker起不来,此时重启机器即可。

?

设定路由规则

route add -net 172.17.0.0/16 gw 192.168.88.131????????#对端主机IP

route add -net 172.18.0.0/16 gw
192.168.88.130

?

关闭火墙规则,对icmp的reject:

iptables -F; iptables -t nat –F

?

测试

在docker1上的容器能够和docker2上的容器通信

?

注意使用tcpdump分析和排错: tcpdump icmp

?

数据包流向

docker1_container1_eth0->docker1_docker0->docker1_enoXX-> docker2_enoXX(docker1‘gw)->docker2_docker0 -> docker2_container1_eth0

时间: 2024-08-29 18:54:38

Docker跨主机通信之路由的相关文章

Docker跨主机通信网络

Docker跨主机通信网络 跨主机网络方案包括: docker原生的 overlay 和 macvlan.第三方方案:常用的包括flannel.weave 和 calico. (1)准备 Overlay 网络实验环境 [[email protected] ~]# docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap [[email protected] ~]# netstat -

Docker跨主机通信:桥接方式和路由方式

1.直接路由 通过在主机中添加静态路由来实现跨主机通信.如果有两台主机host1和host2,两主机上的docker容器是两个独立的二层网络,将con1发往con2的数据流先转发到主机host2上,再由host2转发到其上的docker容器中,反之亦然. 由于使用容器的IP进行路由,就需要避免不同主机上的docker容器使用相同冲突的IP,所有应该为不同的主机分配不同的IP子网. #主机A上:192.168.187.143,主机B:192.168.187.144 #S1:添加网卡docker0,

docker跨主机通信

创建overlay网卡 docker network create -d overlay --subnet 192.168.0.0/16 ov_net1 #指定子网 docker network create -d overlay  ov_net2 #不指定子网 docker network ls #查看网络 container使用此网络 docker run -it --network ov_net1 --ip 192.168.0.3 --name host ubuntu:16.04 http

10: docker 跨主机的容器间通信(macvlan / overlay )

docker 跨主机的容器间通信(macvlan) 作用: 虚拟多个mac地址,虚拟出多个网卡给容器用. #创建macvlan网络 docker network create --driver macvlan(要创建的网络类型) --subnet  子网IP段  --gateway 本机网关 -o parent=本机网卡  创建的macvlan网络名称 [[email protected] ~]# docker network create --driver macvlan --subnet 1

Docker容器跨主机通信之:直接路由方式

概述 就目前Docker自身默认的网络来说,单台主机上的不同Docker容器可以借助docker0网桥直接通信,这没毛病,而不同主机上的Docker容器之间只能通过在主机上用映射端口的方法来进行通信,有时这种方式会很不方便,甚至达不到我们的要求,因此位于不同物理机上的Docker容器之间直接使用本身的IP地址进行通信很有必要.再者说,如果将Docker容器起在不同的物理主机上,我们不可避免的会遭遇到Docker容器的跨主机通信问题.本文就来尝试一下. 方案原理分析 由于使用容器的IP进行路由,就

docker之跨主机通信

本地workstations虚拟机server1和server2环境为centOS7.7,安装软件为docker-ce,docker版本为19.03.05docker安装就不介绍了,直接进主题.一.准备工作跨主机需要两个独立的网卡:server1和server2添加网卡 [[email protected] ~]# ip addr show 查看网卡是否添加成功 添加成功. macvlan本身是linxu kernel的模块,本质上是一种网卡虚拟化技术.其功能是允许在同一个物理网卡上虚拟出多个网

docker之docker容器flannel模式多网段跨主机通信

一.简介flannel是为实现多网段通信的第三方的解决方案, 是 CoreOS 开发的容器网络解决方案.flannel 为每个 host 分配一个 subnet,容器从此 subnet 中分配 IP,这些 IP 可以在 host 间路由,容器间无需 NAT 和 port mapping 就可以跨主机通信.每个 subnet 都是从一个更大的 IP 池中划分的,flannel 会在每个主机上运行一个叫 flanneld 的 agent,其职责就是从池子中分配 subnet.为了在各个主机间共享信息

overlay 如何实现跨主机通信?- 每天5分钟玩转 Docker 容器技术(52)

上一节我们在 host1 中运行了容器 bbox1,今天将详细讨论 overlay 网络跨主机通信的原理. 在 host2 中运行容器 bbox2: bbox2 IP 为 10.0.0.3,可以直接 ping bbox1: 可见 overlay 网络中的容器可以直接通信,同时 docker 也实现了 DNS 服务. 下面我们讨论一下 overlay 网络的具体实现: docker 会为每个 overlay 网络创建一个独立的 network namespace,其中会有一个 linux brid

Docker:macvlan实现容器跨主机通信 [十四]

一.什么是macvlan 1.macvlan 本身是 linux kernel 模块,其功能是允许在同一个物理网卡上配置多个 MAC 地址, 2.即多个 interface,每个 interface 可以配置自己的 IP. 3.macvlan 本质上是一种网卡虚拟化技术 二.跨主机通信 1.创建macvlan 1.主机luoahong [[email protected] ~]# docker network create --driver macvlan --subnet 10.0.0.0/2