0Pricing
DevOps Bootcamp · 课时

自定义桥接网络与服务发现

创建用户定义的桥接网络,让容器能够通过名称相互发现和通信,并了解 Docker 如何处理基于 DNS 的服务发现

自定义桥接网络与服务发现 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。

为什么需要自定义网络?

默认的 bridge 网络可以正常工作,但其中的容器只能通过 IP 地址访问彼此。用户自定义的桥接网络会提供基于 DNS 的自动服务发现功能,使容器可以通过名称互相访问。

  • 更好地隔离不同的应用组
  • 内置名称解析
  • 可以动态连接和断开容器

列出现有网络

Docker 自带三个默认网络。在创建自己的网络之前,可以使用 docker network ls 检查它们。

docker network ls

创建桥接网络

使用 docker network create。如果不指定驱动标志,Docker 默认使用 bridge 驱动,这非常适合单主机容器。

docker network create app-net

检查网络

docker network inspect 会以 JSON 形式显示子网、网关以及所有已连接的容器。这对于调试 IP 地址范围很有帮助。

docker network inspect app-net

在网络上运行容器

使用 --network 在启动时连接容器。这里我们启动一个 Redis 容器,其他容器将通过名称发现它。

docker run -d --name cache --network app-net redis:7

基于名称的发现

在用户自定义网络中,容器的名称会通过 Docker DNS 解析。应用只需连接到端口 6379 上的 cache 主机,而不必查找 IP 地址。

docker run -it --network app-net alpine ping -c 2 cache

网络别名

使用 --network-alias 为容器指定额外的 DNS 名称。当多个容器在轮询机制后端使用同一个逻辑名称响应请求时,这一功能很有用。

docker run -d --network app-net --network-alias db postgres:16

连接正在运行的容器

您不必在启动时决定所有配置。docker network connect 可以将已在运行的容器连接到另一个网络。

docker network connect app-net web

从网络断开

同样地,docker network disconnect 可以在不停止容器的情况下将其从网络中移除。

docker network disconnect app-net web

暴露端口与发布端口

同一自定义网络中的容器可以自由地通过任何端口通信。若要从主机访问服务,请使用 -p hostPort:containerPort 发布端口。

docker run -d --network app-net -p 8080:80 nginx

清理网络

使用 docker network rm 删除未使用的网络,或一次性清理所有未使用的网络。包含已连接容器的网络必须等这些容器被移除后才能删除。

docker network prune -f

快速检查

测试您对服务发现的理解。

回顾

您已经学会了如何创建和管理自定义桥接网络:

  • docker network create 可创建带有 DNS 的隔离网络
  • 容器可以通过名称或 --network-alias 互相访问
  • connect/disconnect 可以动态连接或断开容器
  • 使用 -p 发布端口;清理未使用的网络

基于名称的服务发现是 Compose 自动构建功能的基础。

常见问题解答

「自定义桥接网络与服务发现」课时是免费的吗?

是的 — 「自定义桥接网络与服务发现」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。

「自定义桥接网络与服务发现」这节课中我会学到什么?

创建用户定义的桥接网络,让容器能够通过名称相互发现和通信,并了解 Docker 如何处理基于 DNS 的服务发现 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 DevOps Bootcamp 需要有经验吗?

无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「自定义桥接网络与服务发现」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 DevOps Bootcamp 课中编写并运行代码吗?

能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 容器网络基础
  2. 使用 Docker 卷实现持久化
  3. 绑定挂载与 tmpfs 挂载
  4. 自定义桥接网络与服务发现
← 返回 DevOps Bootcamp