首页/云/Docker 容器速查/网络别名 --network-alias 与容器名解析
网络与存储52 条

网络别名 --network-alias 与容器名解析

给容器在指定网络上追加可解析的名称:其他容器用别名访问即可,适合在副本间做无差别调用的场景。

Docker 容器速查云更新于 2026-10-13

别名解决什么问题

--network-alias 给容器在某张用户自定义网络上追加一个可解析的名字,其他容器用这个别名就能访问,不必关心容器名或 IP。它的解析由 Docker 内嵌 DNS 完成,机制与容器名解析相同,作用范围只限该网络。典型价值是把「服务角色」和「容器实例」解耦:副本叫 web-1、web-2,但对外统一用 api 这个别名。

基本信息

语法--network-alias 名称,可重复指定多个
作用范围仅所在的用户自定义网络
解析方式内嵌 DNS 按别名返回对应容器地址
不支持默认 bridge 网络没有内嵌 DNS

典型使用场景

  • 多副本统一入口:多个容器挂同一别名,调用方配置里只写别名
  • 环境切换不变更配置:测试与生产用相同别名,指向不同容器
  • 平滑替换:新容器先挂上别名,再下线旧容器,减少调用方改动
  • 临时排障:给现有容器加个语义化别名,验证调用链上的名字是否写错
  • 单向收紧的调用关系:只给需要被访问的一方加别名,避免全网络可见

别名配置与验证

别名配置与验证
# 启动时挂两个别名
docker run -d --network app-net --network-alias api --network-alias web app/web:1.0

# 运行中的容器追加别名
docker network connect --alias api app-net web

# 在同网络内的临时容器里验证解析
docker run --rm --network app-net alpine getent hosts api

# 查看容器当前持有哪些别名
docker inspect -f '{{json .NetworkSettings.Networks}}' web

访问方式对照

访问方式自定义网络内默认 bridge 内
容器名可解析不可解析
网络别名可解析不可解析
手工写 /etc/hosts可解析,需自行维护可解析,需自行维护
固定 IP可用但重建后易变可用但重建后易变
别名与容器名冲突或与同网络内已用的别名重复时会报错,命名前先在 inspect 里核对现有记录。
同一别名下有多台容器时,DNS 会返回多条记录,客户端按自己的策略挑选后端,这不等同于负载均衡器的健康检查语义。

易错点

  • 只在默认 bridge 上写别名:该网络没有内嵌 DNS,别名完全不起作用
  • 别名跨网络使用:离开所属网络后解析不到,跨网络调用要么共用一张网要么走外部入口
  • 误当负载均衡:别名只做名称解析,不感知后端是否健康,挂了的一方仍可能被解析到
  • 命名与容器名混淆:重复或冲突的名字会直接导致启动失败,命名前先看清现有清单

数据来源与参考

  • Docker 官方文档:容器 DNS 与 network-alias(docs.docker.com/network)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌