docker0
Docker中所有网络接口都是虚拟的,通过Linux的虚拟网络技术veth-pair(Virtual Ethernet Pair)实现。
- - link
通过此命令可以给容器设置DNS,之后便可以通过容器名直接ping通。
$ docker run -d -P --name tomcat03 --link tomcat02 tomcat
如上,此时tomcat03容器可以直接ping tomcat02
$ docker exec -it tomcat03 ping tomcat02
PING tomcat02 (172.17.0.3) 56(84) bytes of data.
64 bytes from tomcat02 (172.17.0.3): icmp_seq=1 ttl=64 time=0.115 ms
64 bytes from tomcat02 (172.17.0.3): icmp_seq=2 ttl=64 time=0.080 ms
自定义网络
查看所有的docker网络
网络模式:
bridge :桥接 docker(默认,自己创建也是用bridge模式)
none :不配置网络,一般不用
host :和所主机共享网络
container :容器网络连通(用得少!局限很大)
$ docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
启动容器指定网络,此时通过自定义网络能够直接使用IP或者容器名ping通,以此来达到网络隔离的好处。
网络连通
打通两个网络之间的容器访问,相当于将A网络下的容器A-C1注册到B网络上,这样容器A-C1便拥有了A、B网络两个IP,并且可以访问B网络下的所有容器。
命令: