network_mode 和使用 Docker 的网络有什么区别

2024-02-14

我试图使用网络"bridge"加入来自不同的服务"docker-compose.yml"我收到以下错误:

Network-scoped alias is supported only for containers in user defined networks

搜索了一下,我找到了这个参考链接::https://github.com/docker/compose/issues/3012 https://github.com/docker/compose/issues/3012

我把所有内容都读了好几遍,但我无法理解使用其中之一的真正原因。

有人可以向我解释一下实践中有什么区别吗?

为什么当你使用network_mode并运行docker network inspect bridge所有正确链接的容器都会出现吗?

Before:

services:
  local-db:
    image: mysql

networks:
  default:
    external:
      name: bridge

After:

local-db:
  image: mysql
  network_mode: bridge

顶层networks部分创建可供各种服务使用的组合网络(或指定外部用户创建的网络)。然后每个服务定义一个networks部分来识别一个或多个用户创建的要加入的网络。该服务会自动配置网络别名,以进行基于 DNS 的服务发现。这是设置服务网络的首选方法,默认情况下,每个网络都是桥接网络。

要跳过整个过程,您可以使用network_mode从 compose 管理网络更改为host, bridge, none, service:$name, or container:$name。其中每一个都具有独特的属性。

  • host根本没有网络命名空间,类似于在容器外部启动进程。
  • bridge是 docker 始终创建的传统桥接网络,但会禁用某些功能,例如基于 DNS 的服务发现。
  • none根本没有网络,只定义了环回接口。
  • service:$name and container:$name是将多个容器连接到同一网络命名空间的特殊方法。 kubernetes 中的 pod 也完成同样的事情,它对于网络故障排除或创建需要访问 localhost 的 sidecar 时非常有用。这只能作为构建微服务时的最后手段,因为它破坏了独立扩展和部署容器的能力。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

network_mode 和使用 Docker 的网络有什么区别 的相关文章

随机推荐

  • 如何采取行动关闭 NSPopover?

    您好 我在我的一个应用程序中实现了 NSPopover 但弹出窗口不会关闭 我猜一旦我单击其他内容 它应该关闭 但事实并非如此 我知道有一个关闭弹出窗口操作 但这只适用于不同的按钮 当我按下同一按钮时 如何才能看到弹出窗口已打开以及何时打开
  • 使用泛型从枚举中获取最大值

    如何使用泛型从枚举中获取最大 int 值 我已尝试以下操作 但它显示以下编译错误 无法将 T 隐式转换为 int int maxValue GetMaxValue
  • 如何在 2019.3 中删除我的 IntelliJ 许可证?

    我安装了 JetBrains IntelliJ 如何删除许可证设置 我可以在以下位置找到许可证详细信息Help gt Register 菜单 但这不允许我删除许可证设置或输入无效数据 例如不存在的许可证服务器 用例 我安装了一个许可证服务器
  • 是否可以在 Spring MVC REST 端点中验证 @RequestParam?

    在 Jersey 2 中可以这样做 GET PATH user email public IDto getUser NotNull Email PathParam email String validEmail return userMan
  • 如何将列表转换为队列来实现先进先出

    考虑 public List
  • 数组公式中当前行中的 COUNTA (Google 表格)

    我有一个具有固定数量的列和动态行的 Google 工作表 我喜欢使用 countA 来计算当前行中具有值 非空白 的字段 我找到了一个公式在这里 https productforums google com forum topic docs
  • Android权限保护级别18和50

    当我转储 Nexus 7 上所有应用程序的所有权限时 我 如预期 获得保护级别为 0 正常 1 危险 2 签名 的权限 3 SIGNATURE OR SYSTEM 以下没有任何记录 但也有很多权限的保护级别设置为 18 有些权限设置为 50
  • 相机在 android 2.2 上不工作

    在Android SDK和AVD Manager中 我创建了一个新的android虚拟设备 如下所示 姓名 myavd 目标 Android 2 2 API 级别 8 SD 卡 50MiB 内置 默认 HVGA 硬件 抽象 LCD 密度 1
  • LdapConnection 与 PrimaryContext

    我有以下两种使用 LDAP 和 LDAPS 验证用户身份的实现 我想知道哪个更好 更正确 郑重声明 这两种方法都适用于 SSL 和非 SSL 连接 我也很好奇 因为当在 Wireshark 上观看时Non SSL PrincipalCont
  • php中usort()函数如何工作

    我查看了 php 文档 在线教程 但没有看到 usort 是如何实际工作的 我在下面有一个我正在玩的例子 data array array msg gt some text month gt 11 level gt 10 array msg
  • 使用传输客户端的安全弹性连接

    需要使用 java 代码中的传输客户端连接到具有 https 身份验证的安全弹性搜索 我有用户 ID 和密码来连接安全弹性 我使用的是elasticsearch 7 10 0 try Settings settings Settings b
  • 何时在休眠中使用 Criteria.ALIAS_TO_ENTITY_MAP?

    我是冬眠新手 我已阅读以下行 Criteria ALIAS TO ENTITY MAP 请帮助我何时使用Criteria ALIAS TO ENTITY MAP Thanks 这些通常与 hibernate 中的结果集转换器一起使用 阅读A
  • 如何在网络表单中加载页面之前填充下拉列表?

    我的控件 System Web UI UserControl 中有以下 Page Load 方法 protected void Page Load object sender EventArgs e DropDownList ShowAss
  • 无法在unity java插件上使用google play服务

    我有一个用 Java 编写的 Unity 插件 在这个插件中我需要获取新的 Google广告ID http googledevelopers blogspot co il 2013 10 google play services 40 ht
  • 如何将事件侦听器添加到 Highcharts 对象*之后*我创建它

    我正在尝试在创建 highcharts 对象后向其添加事件侦听器 我可以在申报时添加一项 当我尝试使用 Chrome 控制台来确定在何处附加侦听器后声明时 我做不到 如果您想在创建图表后添加事件侦听器 文档提供了一些关于扩展高图表 http
  • 尝试打印链接名称时出现 StaleElementReferenceException

    我正在尝试打印谷歌搜索中显示的前 5 页链接 但是得到 StateElementReferenceException 不确定哪一个出了问题 public class GoogleCoInTest static WebDriver drive
  • 如何阻止 Python 在 Microsoft Windows 中执行时立即关闭

    我刚刚上大学 我们将使用 python 我们确实什么也没做 所以我下载了程序并执行了一些打印命令 仅此而已 当我运行我的 py 文件时 print命令 出现后立即关闭 我理解它为什么这样做 它给出了输出 所以它完成了它需要做的事情 但我也理
  • 如何在空手道加特林中每秒加载更多请求

    我正在尝试重用空手道脚本并使用加特林执行负载测试 定义的场景是每秒加载 50 个用户 持续 10 秒 对 500 个用户进行负载测试 但是 gatting 报告中每秒的请求数不超过 20 个请求 如果我做错了什么 请告诉我 执行空手道脚本的
  • 用于测试的内存 MongoDB?

    我正在使用 MongoDB 数据库为我的 NodeJS 应用程序编写一些集成和系统测试 我使用的测试框架是Mocha和Supertest 是否可以将 MongoDB 设置为内存数据库 我只能用它来测试 然后在测试完成后擦除我的所有集合和文档
  • network_mode 和使用 Docker 的网络有什么区别

    我试图使用网络 bridge 加入来自不同的服务 docker compose yml 我收到以下错误 Network scoped alias is supported only for containers in user define