zoukankan      html  css  js  c++  java
  • 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


      

      

  • 相关阅读:
    4.qml-ECMAScript(Array对象、Math对象)
    3.qml-ECMAScript_03(Object基类对象、String对象)
    2.qml-ECMAScript_02(原始值类型、通用转换方法)
    ORA-00001: 违反唯一约束条件(SOLEX.SYS_C0012537) --解决方法
    macOS 系统打开和退出文件夹(cd命令)
    macOS 系统下node安装和环境配置(通过node官网)
    macOS 系统报错:zsh:command not found :npm
    macOS 系统更新node老是不成功
    macOS 系统上升级 Python
    maxOS 系统更新node版本
  • 原文地址:https://www.cnblogs.com/chengyangyang/p/11236019.html
Copyright © 2011-2022 走看看