首页/云/云与容器速查/docker network ls 网络列表
容器与 Docker106 条

docker network ls 网络列表

列出 Docker 网络:默认三件套 bridge(默认)、host(宿主网络)、none(无网络);自定义网络是容器间通过名字互相解析的前提。

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

docker network ls 是什么

它列出当前 Docker 的网络,默认有 bridge、host、none 三个。自定义网络的意义在于内置 DNS:同一自定义网络里的容器可以用容器名互相解析,这正是多容器应用能按名字互访的前提。

基本信息

默认网络bridge、host、none 三个
bridge默认模式,容器有独立 IP,通过端口映射对外
host共享宿主网络栈,无 NAT,性能高但冲突风险大
none无网络,只有回环,用于隔离任务
自定义网络支持按容器名解析,推荐多容器协作使用
输出格式可用 --format 自定义显示列

网络模式对比

模式隔离性典型用途
bridge有独立网络命名空间默认,多数场景
自定义 bridge隔离且带内置 DNS多容器应用互访
host无隔离,共享宿主网络栈追求极致性能的网关
none完全无网络纯计算或离线任务

查看与使用

查看与使用
docker network ls                                             # 列出所有网络
docker network ls --format "table {{.Name}}  {{.Driver}}"     # 自定义输出
docker network create app-net                                 # 建自定义网络
docker run -d --network app-net --name db mysql:8.0           # 加入该网络
docker network inspect app-net                                # 看成员容器

典型使用场景

  • 多容器应用需要按名字互访,建自定义网络
  • 排查容器访问不通,先确认两者是否在同一网络
  • 需要更高网络性能时评估 host 模式
  • 隔离离线任务时使用 none 模式
默认 bridge 网络下容器不能靠名字解析,用自定义网络是更干净的方案,也不必依赖已过时的链接参数。
host 模式没有网络隔离:容器直接使用宿主端口,同一端口只能有一个进程占用,冲突会直接导致启动失败。
把服务全部塞进 host 模式追求性能,会牺牲端口隔离与可移植性,后续多实例部署时会非常被动。
创建容器时不指定网络就会落到默认网络:多容器应用要么在运行时统一指定同一自定义网络,要么在编排文件里显式声明,避免个别容器落单。
容器所属网络在创建时就确定并写入容器:要换网络得重新创建容器,运行时无法直接切换,所以排查前先确认容器当前挂在哪个网络上。

易错点

  • 默认 bridge 里用容器名互访失败:没有内置 DNS 解析
  • host 网络容器抢端口:宿主同一端口只能有一个进程
  • 容器在不同自定义网络:互相解析不到,误判成网络故障
  • 重建网络后忘记把旧容器加回去:服务访问突然中断
  • 只用默认网络承载多容器应用:缺少隔离与命名解析能力

数据来源与参考

  • Docker Docs:docker network ls
  • Docker Docs:网络概述

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌