docker 容器之间通讯

  在这里,我将容器之间的通讯分为两部分,① 在同一个宿主机上,容器之间的通讯 ② 在不同宿主机上容器之间的通讯

  在安装docker后,默认会创建三个网络 docker network ls

  

  

host:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。

Container:创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围。

None:该模式关闭了容器的网络功能。

Bridge:此模式会为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,通过docker0网桥以及Iptables nat表配置与宿主机通信。  也是默认使用的方式

  同个宿主机容器之间的通讯

  先做一个示范

  我们启动两个容器   docker run -it --name centos1 -d centos      docker run -it --name centos2 -d centos

  1. 通过容器IP进行访问  。但是IP不固定,所以这并不是一个很好的方案。

    我们使用inspect 分别查出两个的ip 地址。172.17.0.3       172.17.0.2

    进入到容器内部我们进行ping 下。 发现能够ping 通。

    我们现在使用 centos1 的IP是3,centos2 是2,我们将两个容器都关闭,启动centos1,发现IP变了。

  2.通过宿主机ip+port 进行访问,通讯受到限制。

  3.通过link 进行建立连接(官方不推荐使用,就不详细说明了)  

  4.官方推荐使用 User-defined networks

    用docker network 创建一个新的网络,在docker -run 的时候,指定到新创建的这个网络上

    ①创建一个新的网络  docker network create my-network

    ②docker run -it --network my-network --name centos1 -d centos

  

  

猜你喜欢

转载自www.cnblogs.com/chengyangyang/p/11236019.html