桥接模式是docker 的默认网络模式,当你启动一个镜像时,它使用的就是默认的网络模式。
通过 docker network ls 即可以查看
问题来了,当我在代码中直接容器名去访问时,提示我不能dns正常解析,即不能通过容器名访问容器,于是我去查找资料,重点来了,Linux上默认的Bridge网络是不支持通过Docker DNS服务进行域名解析的。自定义桥接网络可以!
于是容器之间相互访问解决方案来了,简单的有两种 :
1.通过ip访问
我们可以直接使用命令
docker inspect [容器id]
来查看它属的ip地址,默认网桥一般为172.17.0.*,同在默认网桥容器可以直接通过这ip地址进行访问。
2.把容器放在同一个新建的自定义桥接网络里
-
输入
docker network create mynetwork创建 一个新的网络,默认使用桥接网络
-
运行容器并将其连接到该网络:
docker run --name container1 --network mynetwork image1 docker run --name container2 --network mynetwork image2
如也可以让一个容器同时在几个网络中,相当 于给它装上两块网卡。
docker run --name container1 --network mynetwork1 --network mynetwork2 image2