简体中文

开发者工具 · Docker run 到 Docker compose 转换器

Compose 中的 Docker 网络:网桥、主机和默认网络

· 背景

码头工人 撰写 网络

说明 compose 中的 docker 网络的抽象图:网桥、主机和默认网络
原始 ToolAcre 矢量图

Docker 的网络模型在早期的 --link 时代和今天的用户定义网络之间发生了很大变化。这篇文章解释了模式、Compose 自动创建的内容以及 --network 标志如何转换。

Web容器找不到数据库——旧的docker run使用了--link,新文件什么也没有

Web容器找不到数据库——旧的docker run使用了--link,新文件什么也没有。证据:--link 被消耗并被警告为遗留,而不是成为 YAML。使用一次性文字再现网络连接。将每个源事件与 network_mode 网络链接配对;保留 DNS 和拓扑以供目的地审核。

网络事件还揭示了一个单独的网络事件边界是主机无桥专用和容器前缀值变为network_mode。证据:host none 网桥私有且容器前缀值变为 network_mode。该网络连接约束是一个停止点。检查没有制造行为的网络模式网络链接,然后记录 DNS 和拓扑的主机检查。

转换器将用户命名的网络声明为外部;它不构建多服务默认网络

默认桥和用户定义桥 - 为什么服务名称仅在后者上解析。证据:单服务转换器无法构建项目 DNS 关系;转换器将用户命名的网络声明为外部;它不构建多服务默认网络。将网络连接令牌跟踪到 network_mode 网络链接中。将有序值与最后值字段分开; DNS 和拓扑不在收集范围内。

相关的网络机制边界是,对于该网络部分,在该候选文件旁边保留该网络部分的原始命令和该网络部分的警告。证据:存储库没有提供更广泛的运行时间或历史证据。使用此网络连接事实来预测 network_mode 网络链接中的一个成员或标量。在决定有关 DNS 和拓扑的任何事情之前检查警告。

项目网络 DNS 行为不是由该单一服务转换器生成或测试的

Compose 为您创建的内容 — 每个服务都有一个 DNS 名称的项目网络。证据:自定义网络变成服务入口加外部声明;项目网络 DNS 行为不是由该单一服务转换器生成或测试的。从模型判断网络附件序列化。在 network_mode 网络链接中引用可以保护类型,但不提供 DNS 和拓扑的操作证明。

第二个网络序列化观察是为此网络部分保留该网络部分的原始命令,并警告除了该网络部分之外,该网络序列化结果将该网络部分配置表示的候选文件与该网络部分图像元数据的缺失上下文分开,该文件位于网络序列化转换之外。此网络附件输出将设置与不可用的上下文分开。保持 network_mode 网络链接可审查并独立检查 DNS 和拓扑。

--network 主机且无 — network_mode:主机、其以 Linux 为中心的性质以及被忽略的端口

--网络主机和无 — 网络模式:主机、其以 Linux 为中心的性质以及被忽略的端口。在网络附件异常处停止而不是猜测。任何靠近 network_mode 网络链接的添加都需要与 DNS 和拓扑相关的特定于部署的原因。

另一个网络异常约束是单独的网络异常边界是覆盖 macvlan 别名和固定地址需要手动工作。证据:覆盖 macvlan 别名和固定地址需要手动工作。将原始网络连接命令保留在警告旁边。该比较显示了 network_mode 网络链接包含哪些内容以及哪些 DNS 和拓扑决策仍然是手动的。

container:x 保留为 network_mode:container:x,不重写为 service:x

--网络容器:x — Compose 中的网络模式:服务:x 及其在 VPN sidecar 中的用途。证据:container:x 仍然是原义的,并且没有重写为 service:x; container:x 保留为 network_mode:container:x,而不是重写为 service:x。从合成名称构建网络附件示例。使每个 network_mode 网络链接项都可追踪,而不会暴露生产 DNS 和拓扑详细信息。

相同的网络示例示例演示了对于此网络部分,在此候选文件旁边保留此网络部分的原始命令和此网络部分的警告。配对的网络连接事实应该在 network_mode 网络链接中可见。记录该行并避免有关 DNS 和拓扑的假设。

--link 被警告为遗留并被省略,而不是成为链接键

--link — 旧版链接:关键、它的作用以及服务名称为何取代它。证据:没有生成链接密钥,并且必须手动对对等点建模; --link 被警告为遗留并被省略,而不是成为链接键。将网络连接结果转换为一种可观察的 network_mode 网络链接差异。 Docker 拥有后来的 DNS 和拓扑裁决。

网络结果实现还显示,对于该网络部分,保留该网络部分的原始命令和警告,对于该网络部分,该候选文件网络结果事实定义了浏览器为此网络部分贡献的内容,docker 仍然拥有网络结果运行时判决,对于该网络部分,操作员仍然拥有网络结果安全策略,对于该网络部分存储库仍然需要删除网络结果秘密,对于该网络部分,保留这些责任,当对于描述生成的服务的该网络部分时,这些责任是分开的。拆分网络附件职责:转换写入 network_mode 网络链接,存储库删除机密,操作员验证 DNS 和拓扑。

这不包括什么 - 覆盖网络、macvlan 和 IPv6 配置

这不包括覆盖网络、macvlan 和 IPv6 配置。将网络连接范围限制为此处显示的 network_mode 网络链接分支。相邻表单和默认值无法回答 DNS 和拓扑问题。

另一个网络范围限制来自单独的网络限制边界,即单服务转换器无法构建项目 DNS 关系。证据:单一服务转换器无法构建项目 DNS 关系。将此网络连接边界视为排除项。优先选择准确的网络模式网络链接,而不是对 DNS 和拓扑的猜测。

阅读网络模式和外部网络声明旁边的警告

要点:Compose 网络是现代的 --link — 并且使用 --network 转换命令显示了该标志在服务中的表示方式。证据:主机模式警告已发布的端口没有运行时效果;请阅读 network_mode 和外部网络声明旁边的警告。审核网络附件作为源选项、模型字段、network_mode 网络链接行和警告。在检查 DNS 和拓扑之前删除机密。

最后,网络外卖源确认保留此网络部分的原始命令,并对此网络部分发出警告,该候选文件表明网络外卖结论提高了此网络部分的可审计性,而没有承诺此网络部分解析的等效 shell 仍然在网络外卖保证之外。严格关闭网络附件:network_mode 网络链接是候选者;不保证 DNS 和拓扑以及 shell 等效。