当前位置: 首页 > Web前端 > HTML

泊坞窗-容器互联

时间:2023-03-28 16:01:09 HTML

上篇文章讲了创建自定义网络。我创建了一个mynet网络并指定了网关和子网地址。上一篇文章最后问了一个问题:其他网络下的容器可以直接访问mynet网络下的容器吗?今天,就让我们来看看如何实现容器互联。其他网络下的容器加入mynet网络,实现一个容器有两个ip地址的网络集群。首先创建一个test-network网络:dockernetworkcreatetest-network然后运行centos01容器并将其添加到test-networknetworkdockerrun-it-P--namecentos01--nettest-networkcentoscentos01containerhasbeenaddedtothetest-networknetworkcentos01加入mynetnetworkroot@---~]#dockernetworkconnectmynetcentos01viewmynetnetworkdockernetworkls[root@---~]#dockernetworklsNETWORKIDNAMEDRIVERSCOPEfeafa30d4051bridgebridgelocale8bf4fced9e2hosthostlocal0096a971fd2cmynetbridgelocal#自定桥网桥6263db0933b9nonenulllocal799426d70aa2test-networkbridgelocaldockernetworkinspect0096[root@---~]#dockernetworkinspect0096[{"Name":"mynet","Id":"0096a971fd2c66400e53cbae5e53eceedc2f90d5685917e9534640a3535c0ef1","Created":"2021-10-04T10:18:09.113847736+08:00",#IPAM...省略代码显示{""Driver":"default","Options":{},"Config":[{"Subnet":"192.168.0.0/16","Gateway":"192.168.0.1"}]},#...省略代码展示"Containers":{"2fac920eebd505794c4a27ef4efdf531d32805e8663bded93a473bd28236bc27":{"Name":"mynet-centos01","EndpointID":"3aff075...","MacAddress"2:02:02:02:02:02:02","IPv4Address":"192.168.0.2/16","IPv6Address":""},"3dceda051252b6970fe2156bac7710ba6489a97aac68c49b1c85a2f130d0556f":{"Name":"mynet-tomcat01","EndpointID":"9f52b19...","MacAddress":"02:42:c0:a8:00:03","IPv4Address":"192.168.0.3/16","IPv6Address":""},"cb1922b95b9316d129b54f3545fad97295092925e10f875":{"Name":"centos01","EndpointID":"0ba2107...","MacAddress":"02:42:c0:a8:00:04","IPv4Address":"192.168.0.4/16",#新增centos01容器"IPv6Address":""}},"Options":{},"Labels":{}}]查看centos01的容器信息可以看到有两个mynet和test-networkNetworks网络连接信息下,一个容器,两个ip地址,无关代码已省略[root@---~]#dockerinspectcb19[{"Id":"cb1922b95b9316d129b54f3545fad9729092926e10a1d5517f8928db42706151","Created":"2021-10-03T13:39:00.942877668Z","Path":"/bin/bash","Args":[],#...省略代码显示"NetworkSettings":{#...省略显示“Networks”的代码:{#Networkconnection1:mynet"mynet":{,#...省略显示“Gateway”的代码:"192.168.0.1","IPAddress":"192.168.0.4","MacAddress":"02:42:c0:a8:00:04",},#网络连接2:test-network"test-network":{#...省略代码显示“网关”:“172.18.0.1","IPAddress":"172.18.0.3","MacAddress":"02:42:ac:12:00:03",}}}}]test-network网卡下的centos01可以访问mynet-centos01,mynet网卡下的mynet-tomcat01容器ip和容器名连接centos01容器[root@---~]#dockerexec-itcb19/bin/bashmynet-tomcat01容器的IP为:192.168.0.3pingmynet-tomcat01容器的IP[root@cb1922b95b93/]#ping192.168.0.3PING192.168.0.3(192.168.0.3)56(84)bytesofdata.64bytesfrom192.168.0.3:icmp_seq=1ttl=64time=0.186ms^C---192.168.0.3pingstatistics---7packetstransmitted,7received,0%packetloss,time6000msrttmin/avg/max/mdev=0.090/0.127/0.186/0.029ms直接ping容器名mynet-centos01mynet-tomcat01[root@cb1922b95b93/]#pingmynet-centos01PINGmynet-centos01(192.168.0.2)56(84)字节来自mynet-centos01.mynet(192.168.0.2)的data.64字节:icmp_seq=1ttl=64time=0.105ms^C---mynet-centos01ping统计数据---3个数据包传输,3个接收,0%数据包丢失,时间2001msrttmin/avg/max/mdev=0.105/0.116/0.130/0.013ms[root@cb1922b95b93/]#pingmynet-tomcat01PINGmynet-tomcat01(192.168.0.3)56(84)字节esofdata.64bytesfrommynet-tomcat01.mynet(192.168.0.3):icmp_seq=1ttl=64time=0.085ms^C---mynet-tomcat01pingstatistics---2包传输,2接收,0%packetloss,time1001msrttmin/avg/max/mdev=0.085/0.093/0.102/0.012ms[root@cb1922b95b93/]#结论其他网络下的容器可以通过加入docker网络来访问docker网络下的容器,并且可以通过容器ip或者容器名连接,很方便。docker0非常强大。我是一个甜甜的cc,热爱前端,也喜欢专攻各种和工作关系不大的技术。我对技术和产品有着广泛而浓厚的兴趣。我在等待创业机会。本号主要致力于分享个人的经验总结,希望能给小部分人一些小小的帮助。希望与大家一起营造良好的学习氛围,为个人和家庭,为我国的物联网技术、数字化转型、数字经济发展尽一份微薄之力。数风流人物还是看中国,看当下,看你我。