自定义桥接网络与服务发现
创建用户定义的桥接网络,让容器能够通过名称相互发现和通信,并了解 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 反馈 — 无需本地设置。
此课程中的所有课时
- 容器网络基础
- 使用 Docker 卷实现持久化
- 绑定挂载与 tmpfs 挂载
- 自定义桥接网络与服务发现