Docker 容器在桥接模式下的相互通信

78 阅读1分钟

桥接模式是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