zoukankan      html  css  js  c++  java
  • 第 5 章 网络

    容器间通信的三种方式

    (1)IP 通信

    两个容器要能通信,必须要有属于同一个网络的网卡。

    满足这个条件后,容器就可以通过 IP 交互了。具体做法是在容器创建时通过 --network 指定相应的网络,或者通过 docker network connect 将现有容器加入到指定网络。

     

    (2)Docker DNS Server

    通过 IP 访问容器虽然满足了通信的需求,但是不够灵活。在部署应用之前可能无法确定 IP,部署之后再指定要访问的 IP 比较麻烦。对于这个问题,可以通过 docker 自带的 DNS 服务解决。

    从 Docker 1.10 版本开始,docker daemon 实现了一个内嵌的 DNS server,使容器可以直接通过“容器名”通信。方法很简单,只要在启动时用 --name 为容器命名就可以了。

     

    启动两个容器 bbox1 和 bbox2:

    docker run -it --network=my_net2 --name=bbox1 busybox

    docker run -it --network=my_net2 --name=bbox2 busybox

    然后,bbox1 就可以直接 ping 到 bbox2 了:

    使用 docker DNS 有个限制:只能在 user-defined 网络中使用。也就是说,默认的 bridge 网络是无法使用 DNS 的。

     

    (3)joined 容器

    joined 容器非常特别,它可以使两个或多个容器共享一个网络栈,共享网卡和配置信息,joined 容器之间可以通过 127.0.0.1 直接通信。

    例子:

    创建一个 web1 ,并查看网卡信息:

    然后创建 busybox 容器并通过 --network=container:web1 指定 jointed 容器为 web1,并查看一下网卡信息:

    busybox 和 web1 的网卡 mac 地址与 IP 完全一样,它们共享了相同的网络栈。

    busybox 可以直接用 127.0.0.1 访问 web1 的 http 服务。

    joined 容器非常适合以下场景:

    不同容器中的程序希望通过 loopback 高效快速地通信,比如 web server 与 app server。

    希望监控其他容器的网络流量,比如运行在独立容器中的网络监控程序。

     

    ----------------------------------------引用来自--------------------------------------------------

    https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587693&idx=1&sn=0f0b0b7e41d8edb0ed5f8a0b4224a0db&chksm=8d3080f4ba4709e22f4baf33de67fedd4f351784c77d97a97a6477a6a522ef5faaa90e612550&scene=21#wechat_redirect

  • 相关阅读:
    C# HTTP系列9 GET与POST示例
    [译]Android Studio 3.6 新特性概览
    mysql error 1290 hy000:The MySQL server is running with the --skip-grant-tables option so it cannot execute this statemen' 解决方案
    mysql error 1130 hy000:Host 'localhost' is not allowed to connect to this mysql server 解决方案
    Windows+Apache2.4.10+PHP7.0+MySQL5.6.21安装
    php版本的选择
    PHP,Mysql根据经纬度计算距离并排序
    windows无法启动MySQL服务 错误1067
    PHP MYSQL 搜索周边坐标,并计算两个点之间的距离
    html5获取用户当前的地理位置,即经纬度。
  • 原文地址:https://www.cnblogs.com/gsophy/p/10432696.html
Copyright © 2011-2022 走看看