默认情况下,容器之间都是互相隔离不可以访问的。那么需要访问可以通过以下几种方式实现。
1、虚拟ip访问
docker 内部的默认桥接网络docker0,会创建和分配虚拟网卡,容器之间可以通过所获取的IP 进行互相访问。但是这个需要知道每个容器的IP,常规玩玩的用户,这种方式非常麻烦。(大型容器系统会结合域名系统实现,不在本文范围内)
2、运行时通过link关联
docker run -d -P --name tomcat01 docker.io/tomcat
docker run -d -P --name tomcat04 --link tomcat01 docker.io/tomcat
这样的情况下,04可以ping通"tomcat01", 但是反过来不行。
而且需要有执行顺序。
原理:实际上是在04的hosts中增加了01的对应记录
3、 创建桥接网络
docker network create --driver bridge --subnet 192.168.20.0/24 --gateway 192.168.20.1 younet
容器连接网络
docker run -it --name <容器名> ---network <bridge> --network-alias <网络别名> <镜像名>
好处:集群网络相对独立和互相隔离