docker实现跨主机通信(使用静态路由方式) |
您所在的位置:网站首页 › ubuntu怎么添加路由 › docker实现跨主机通信(使用静态路由方式) |
docker实现跨主机通信
背景准备docker网卡初始化设置静态路由测试网络互通虚拟机a虚拟机b测试网络虚拟机a-容器虚拟机b-容器
清除测试数据删除路由配置删除docker网卡
写在后面
背景
为了合理分配资源,需要将多个服务器的docker容器里面的网络实现互通,如a服务器的docker中启动了服务a,b服务器的docker容器中的b服务需要调用a服务里面的接口。同时要保证不占用宿主机端口,就有了跨主机容器网络互通的需求。 准备虚拟机a ip: 192.168.101.150虚拟机b ip: 192.168.101.170 docker网卡初始化分别对两台服务器中的docker创建网卡,分配ip地址范围为 10.20.0.0/16 10.21.0.0/16 虚拟机a docker network create test --driver bridge --ipam-driver default --subnet 10.20.0.0/16虚拟机b docker network create test --driver bridge --ipam-driver default --subnet 10.21.0.0/16 设置静态路由分别对虚拟机a,虚拟机b设置静态路由,实现虚拟机a可以直接访问虚拟机b的docker test网卡里面的容器,虚拟机b可以直接访问虚拟机a的docker test网卡里面的容器 虚拟机a route add -net 10.21.0.0 netmask 255.255.0.0 gw 192.168.101.150 #开启路由转发 iptables -P FORWARD ACCEPT虚拟机b route add -net 10.20.0.0 netmask 255.255.0.0 gw 192.168.101.170 #开启路由转发 iptables -P FORWARD ACCEPT 测试网络互通 虚拟机a虚拟机a启动nginx容器 docker run --name nginx --net=test -d nginx:alpine docker exec -ti nginx ship如下 虚拟机b启动nginx容器 docker run --name nginx --net=test -d nginx:alpine docker exec -ti nginx ship如下 ping虚拟机b的宿主机ip ping同虚拟机的docker容器中其他容器的ip ping虚拟机a的宿主机ip 服务器a route del -net 10.21.0.0 netmask 255.255.0.0 gw 192.168.101.150服务器b route del -net 10.20.0.0 netmask 255.255.0.0 gw 192.168.101.170 删除docker网卡服务器a # 停掉启动的容器 docker rm -f nginx docker rm -f nginx1 docker network rm test服务器b docker rm -f nginx docker network rm test 写在后面通过以上场景,就可以实现我们的局域网内的docker容器网络互通。如我们实现docker的cnm规范,然后将路由映射管理起来,则可以实现docker集群化,资源合理使用 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |