为了让容器之间可以相互ping通,需要让我们的容器连接到其他的容器,这个时候就需要在他启动的时候去设置:
通过ling连接方式,这样的连接配置很烦锁:
[root@localhost pingxixi]# docker run -d --name tomcat03 -P --link 6f954adffafe tomcat
d9b6ec2ed1ae6ed9ff6eb34525715b2eb50bee74b412de55372789dd7ce73064
[root@localhost pingxixi]# docker exec -it tomcat03 ping tomcat01
PING 6f954adffafe (172.17.0.2) 56(84) bytes of data.
64 bytes from 6f954adffafe (172.17.0.2): icmp_seq=1 ttl=64 time=0.363 ms
64 bytes from 6f954adffafe (172.17.0.2): icmp_seq=2 ttl=64 time=0.107 ms在这里插入代码片
64 bytes from 6f954adffafe (172.17.0.2): icmp_seq=3 ttl=64 time=0.098 ms
[root@localhost pingxixi]# docker exec -it tomcat01 ping tomcat03
ping: tomcat03: Name or service not known
从上面的结果得出,tomcat03 ping tomcat01是可以链接的,但是tomcat01ping tomcat03是连接不上的,连接也是需要配置的。
通过docker network ls可以查看所有的docker里面所有的路由
rtt min/avg/max/mdev = 0.098/0.189/0.363/0.123 ms
[root@localhost pingxixi]# docker network ls
NETWORK ID NAME DRIVER SCOPE
5532048b2d17 bridge bridge local
1414c37df57f host host local
9bbc011e717e none null local
然后可以通过docekr network inspecct 5532048b2d17 命令可以查看5532048b2d17里面的消息:
[root@localhost pingxixi]# docker network inspect 5532048b2d17
[
{
"Name": "bridge",
"Id": "5532048b2d17452d466ace7be2c3fcd808df1af940c0cf8e7697212d1c387648",
"Created": "2020-08-27T20:21:45.942022082+08:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.17.0.0/16",
"Gateway": "172.17.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"6f954adffafe8d2311f4eda6e01e86d58e16660f665fbb7656f76c3884e377c0": {
"Name": "tomcat01",
"EndpointID": "1022a4edf70809762551826c5b85d170bb243c8cc349a590bd9cac9538bb6a5d",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.17.0.2/16",
"IPv6Address": ""
},
"82dba41228a0b15abc8ccfdb2fa4673c33eeebe391757193fcbcd9676e8bcc76": {
"Name": "tomcat02",
"EndpointID": "172c776ee184b7c91eb29ae9a7c02f335e3d7111daaa3022f9d0302e41b91ef9",
"MacAddress": "02:42:ac:11:00:03",
"IPv4Address": "172.17.0.3/16",
"IPv6Address": ""
},
"d9b6ec2ed1ae6ed9ff6eb34525715b2eb50bee74b412de55372789dd7ce73064": {
"Name": "tomcat03",
"EndpointID": "dee92bf615a2b6e6549312dd9da049b28f4610696460c79cd8f5d6974f9b69f1",
"MacAddress": "02:42:ac:11:00:04",
"IPv4Address": "172.17.0.4/16",
"IPv6Address": ""
}
},
"Options": {
"com.docker.network.bridge.default_bridge": "true",
"com.docker.network.bridge.enable_icc": "true",
"com.docker.network.bridge.enable_ip_masquerade": "true",
"com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
"com.docker.network.bridge.name": "docker0",
"com.docker.network.driver.mtu": "1500"
},
"Labels": {}
}
]
通过查看桥接模式的配置文件,发现里面都是配置容器ip的地方,加上容器的名字。接着在往下看:
从以上就可以得出:
–link 就是在我么们hosts中增加一个172.17.0.2 tomcat03 6f954adffafe