Docker 链接容器、Docker 网络、Compose 网络 - 我们现在应该如何“链接”容器

2024-04-08

我有一个现有的应用程序,由在同一主机上运行的 4 个 docker 容器组成。它们已通过以下方式连接在一起link命令。

然而,在对docker进行了一些升级之后,link行为已被弃用,并且似乎发生了变化。我们遇到的问题是容器现在失去了彼此的链接。

所以,docker 说使用新的Network功能结束linked 容器。但我看不出这是如何运作的。

如果2个容器在同一个网络中,则它们是相同的ENV变量自动暴露在容器上,就好像它们是链接的一样?

或者是否使用正确的容器名称/IP 地址更新了主机文件?即使在一个docker restart ?

我在文档中看不到容器如何找到其网络中另一个容器的位置?

Also, compose看起来有一个简单的设置来链接容器,并且可以自动化其中一些 - compose 会是定义多容器应用程序的方法吗?或者现在在生产中运行它还为时过早吗?

Does compose还支持多主机配置吗?

在未来的某个时候,我们可能需要将其中一个容器移动到另一台主机......


如果 2 个容器位于同一网络中,是否会自动在容器上公开相同的 ENV 变量,就好像它们已链接一样?

不,您现在必须使用容器名称作为其主机名。新的网络功能不知道将使用哪些端口。可以将其视为插入同一网络集线器的两台计算机。两者都可以通过主机名来寻址对方。

主机文件是否更新为正确的容器名称/IP 地址?即使在 docker 重新启动之后?

yes, /etc/hosts属于网络一部分的所有容器的文件将由 docker 引擎实时更新。

我在文档中看不到容器如何找到其网络中另一个容器的位置?

使用容器名称。请参阅连接容器 https://docs.docker.com/engine/userguide/networking/work-with-networks/#connect-containers的部分使用网络命令 doc: 连接后,容器可以使用另一个容器的 IP 地址或名称进行通信。

此外,Compose 看起来有一个用于链接容器的简单设置,并且可以自动化其中一些 - Compose 是否是定义多容器应用程序的方法?或者现在在生产中运行它还为时过早吗?

Compose 通过提供以下功能来支持新的网络功能(测试版)--x-networking选项。你不应该使用它尚未投入生产(当前 Compose 版本是 1.5)。

此外,当前的实现有点不方便,因为我们必须使用完整的容器名称,该名称由项目名 + _ + 容器名称 + _1. The 文档 https://docs.docker.com/compose/networking/说下一个版本(当前版本是 1.5)将改进这一点,这样我们就不必担心项目名来寻址容器。

compose 也支持多主机配置吗?

是的,与 Swarm 结合使用,详见覆盖网络文档 https://docs.docker.com/engine/userguide/networking/get-started-overlay/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker 链接容器、Docker 网络、Compose 网络 - 我们现在应该如何“链接”容器 的相关文章

随机推荐

  • 在无父 LinearLayout 上设置 LayoutParams

    我以编程方式创建 LinearLayout 然后我想通过自定义编写的适配器将其附加到 GridView 我想为新创建的 LinearLayout 设置宽度和高度 当我尝试这样做时 出现以下异常 03 18 15 50 54 648 E An
  • 使用 JSON 将用户定义的对象从 jQuery 传递到 ASP.NET Webmethod

    我正在尝试将一些简单的 JSON 从 jQuery 传递到 ASP NET 4 5 Webmethod 它并没有按照我想要的方式工作 如果我接受输入作为单独的参数 它就会起作用 WebMethod public static Address
  • 为 Matlab 编译 MEX 文件时如何忽略 `mexopts.sh`?

    The f命令行参数mex允许指定的位置mexopts sh我们希望使用的 但是有没有办法告诉Matlab忽略mexopts sh 为了编译特定的 MEX 文件 我需要指定CC CFLAGS等 调用时直接在命令行mex 已给出的值mexop
  • 在 Eclipse 中调试(Java);中断查看值时无法将鼠标悬停在变量上

    我正在使用 Eclipse 编写 Java 代码 适用于 Android 并尝试像平常一样调试代码 不过我通常使用 C 据我所知 在 Eclipse 中调试非常糟糕 我不知道我是否做错了什么 但这似乎很糟糕 这是正在运行的代码 我收到某种异
  • SQL 更新 WHERE xx AND 最近记录

    我需要做一些看似非常简单的事情 bdd gt query UPDATE mytable SET aaa aaa bbb bbb WHERE name name 我的问题 我有多个记录与此 WHERE 匹配 并且我只想更新最新的记录 我有一个
  • 仅捕获 UIView 2 手指 UIPanGestureRecognizer

    我有几个UIScrollViews 在我的视图控制器中 我想覆盖一个捕获 2 根手指滑动的视图UIPanGestureRecognizer这不会记录UIScrollView滑动手势 当我使用 2 根手指平移手势在内容上放置透明视图时 不会检
  • 该脚本的安全性(强化程度)如何?

    下面的脚本 test php 旨在放置在我所有 WordPress 站点的特定目录中 它的目的是抓取下面 source地址处的文件并将其解压到它所在的目录中 这就是它的全部目的 例如 我的中央服务器上将有一个仪表板界面 其中列出了存在此脚本
  • 用于静态管理的包装组件

    我想创建一个新组件 其中包含Inputs and Fields from aor并用在
  • 如何使用urllib3下载文件?

    这是基于该网站上的另一个问题 使用 urllib3 下载文件的最佳方式是什么 https stackoverflow com questions 17285464 whats the best way to download file us
  • Python仅枚举反向索引

    我正在尝试反转给出的索引enumerate同时保留被枚举列表的原始顺序 假设我有以下内容 gt gt range 5 0 1 2 3 4 如果我列举这一点 我会得到以下结果 gt gt list enumerate range 5 0 0
  • 如何可靠地检查工作站上当前用户的 Windows 域 ID

    我正在使用 C 和 Net Framework 4 我正在寻找一种万无一失的方法来获取当前登录的 Windows 用户的登录 ID 该方法不易被假冒或黑客攻击 我正在以以下形式查找此内容 域名 用户名 例如某个域 JohnDoe 目前我拥有
  • 限制 Django 的 inlineformset_factory 只创建新对象

    我正在使用 django 的内联表单集工厂 要使用文档中的示例 author Author objects get pk 1 BookFormSet inlineformset factory Author Book formset Boo
  • 如何使用一个 R 包中被另一包屏蔽的函数? [复制]

    这个问题在这里已经有答案了 我想用recode来自car包裹 但如果我有Hmisc加载后 它掩盖了car版本 可能有一种方法可以调用屏蔽函数 也许还有一种方法可以强制一个包成为主导包 你可能会遇到更深层次的问题 但在顶层car recode
  • 在 Angular / Typescript 中对包含整数和字母字母的数组进行排序

    我打算做什么 我尝试像这样对数组进行排序 1 2 2 a 2 b 2 b AsimpleName 2 b NameWithN 3 4 4 a 在 Angular2 中 我当前的代码 成分 this streetDetailRef this
  • 在 Yosemite 上编译 caffe

    我正在尝试在 Yosemite 上安装 caffe 但我的 C 不是最强的 这是我的错误 Alis MacBook Pro caffe ali make all NVCC src caffe layers absval layer cu u
  • Carbon Emacs 不粘贴 Microsoft Word 复制的内容

    不确定 Stackoverflow 是否是正确的站点 我在 mac ox 10 6 7 上使用 Carbon emacs 22 0 971 和 MS Word 12 2 8 我在 MS Word 中有一些文本 我想将其复制并粘贴到 emac
  • python将文件发送到作为服务运行的tika

    参考这个问题 https stackoverflow com questions 16251436 unable to run java command from cgi我想将 MS Word doc 文件发送到作为服务运行的 tika 应
  • 将子目录分离(移动)到单独的 Git 存储库中

    我有一个Git http en wikipedia org wiki Git 28software 29存储库 其中包含许多子目录 现在我发现其中一个子目录与另一个子目录无关 应该分离到一个单独的存储库 如何在保留子目录中文件的历史记录的同
  • 创建自定义 ODBC 驱动程序

    在我目前的工作中 我们希望实现自己的 odbc 驱动程序 以允许许多不同的应用程序能够作为数据源连接到我们自己的应用程序 现在我们正在尝试权衡根据实施规范开发我们自己的驱动程序的选项 这是巨大的 or使用允许程序员 填充 数据特定部分并允许
  • Docker 链接容器、Docker 网络、Compose 网络 - 我们现在应该如何“链接”容器

    我有一个现有的应用程序 由在同一主机上运行的 4 个 docker 容器组成 它们已通过以下方式连接在一起link命令 然而 在对docker进行了一些升级之后 link行为已被弃用 并且似乎发生了变化 我们遇到的问题是容器现在失去了彼此的