Docker 17
引擎: CLI | Engine: CLI

docker network ls

docker网络ls

描述

列出网络

用法

docker network ls [OPTIONS]

选项

名称,简写默认描述
--filter, -f提供过滤器值(例如'driver = bridge')
--format 使用Go模板的pretty-print网络
--no-truncfalse不要截断输出
--quiet, -qfalse只显示网络ID

父命令

命令描述
docker网络管理网络

相关命令

命令描述
docker network connect将容器连接到网络
docker network create创建一个网络
docker network disconnect从网络断开容器
docker network inspect显示一个或多个网络的详细信息
docker network ls列出网络
docker network prune删除所有未使用的网络
docker network rm删除一个或多个网络

扩展描述

列出引擎daemon知道的所有网络。这包括跨越群集中多个主机的网络。

实例

列出所有网络

$ sudo docker network ls NETWORK ID NAME DRIVER SCOPE 7fca4eb8c647 bridge bridge local 9f904ee27bf5 none null local cf03ee007fb4 host host local 78b03ee04fc4 multi-host overlay swarm

使用--no-trunc选项显示完整的网络ID:

$ docker network ls --no-trunc NETWORK ID NAME DRIVER SCOPE 18a2866682b85619a026c81b98a5e375bd33e1b0936a26cc497c283d27bae9b3 none null local c288470c46f6c8949c5f7e5099b5b7947b07eabe8d9a27d79a9cbf111adcbf47 host host local 7b369448dccbf865d397c8d2be0cda7cf7edc6b0945f77d2529912ae917a0185 bridge bridge local 95e74588f40db048e86320c6526440c504650a1ff3e9f7d60a497c4d2163e5bd foo bridge local 63d1ff1f77b07ca51070a8c227e962238358bd310bde1529cf62e6c307ade161 dev bridge local

过滤

过滤标志(-f--filter)格式是一key=value对。如果有多个过滤器,则传递多个标志(例如--filter "foo=bar" --filter "bif=baz")。多个过滤器标志被组合为一个OR过滤器。例如,-f type=custom -f type=builtin返回两者custombuiltin网络。

目前支持的过滤器是:

  • driver

  • id (network’s id)

  • label (label=<key> or label=<key>=<value>)

  • name (network’s name)

  • scope (swarm|global|local)

  • type (custom|builtin)

Driver

driver过滤器根据其驱动程序匹配网络。

以下示例将网络与bridge驱动程序进行匹配:

$ docker network ls --filter driver=bridge NETWORK ID NAME DRIVER SCOPE db9db329f835 test1 bridge local f6e212da9dfd test2 bridge local

ID

id过滤器在网络的ID的全部或部分匹配。

以下过滤器匹配所有包含该63d1ff1f77b0...字符串的ID的网络。

$ docker network ls --filter id=63d1ff1f77b07ca51070a8c227e962238358bd310bde1529cf62e6c307ade161 NETWORK ID NAME DRIVER SCOPE 63d1ff1f77b0 dev bridge local

您还可以筛选ID中的子字符串,如下所示:

$ docker network ls --filter id=95e74588f40d NETWORK ID NAME DRIVER SCOPE 95e74588f40d foo bridge local $ docker network ls --filter id=95e NETWORK ID NAME DRIVER SCOPE 95e74588f40d foo bridge local

标签

label过滤器匹配基础上的存在的网络label单独或label和值。

以下过滤器可以将网络与usage标签进行匹配,无论其值如何。

$ docker network ls -f "label=usage" NETWORK ID NAME DRIVER SCOPE db9db329f835 test1 bridge local f6e212da9dfd test2 bridge local

以下过滤器将匹配usage具有prod值的标签的网络。

$ docker network ls -f "label=usage=prod" NETWORK ID NAME DRIVER SCOPE f6e212da9dfd test2 bridge local

名称

name过滤器上的网络名称的全部或部分匹配。

以下过滤器匹配所有包含foobar字符串名称的网络。

$ docker network ls --filter name=foobar NETWORK ID NAME DRIVER SCOPE 06e7eef0a170 foobar bridge local

您也可以在名称中筛选子字符串,如下所示:

$ docker network ls --filter name=foo NETWORK ID NAME DRIVER SCOPE 95e74588f40d foo bridge local 06e7eef0a170 foobar bridge local

范围

scope过滤器根据其范围匹配网络。

下面的示例将网络与swarm范围:

$ docker network ls --filter scope=swarm NETWORK ID NAME DRIVER SCOPE xbtm0v4f1lfh ingress overlay swarm ic6r88twuu92 swarmnet overlay swarm

下面的示例将网络与local范围:

$ docker network ls --filter scope=local NETWORK ID NAME DRIVER SCOPE e85227439ac7 bridge bridge local 0ca0e19443ed host host local ca13cc149a36 localnet bridge local f9e115d2de35 none null local

类型

type过滤器支持两个值; builtin显示预定义的网络(bridgenonehost),而custom显示用户定义的网络。

以下过滤器匹配所有用户定义的网络:

$ docker network ls --filter type=custom NETWORK ID NAME DRIVER SCOPE 95e74588f40d foo bridge local 63d1ff1f77b0 dev bridge local

通过拥有这个标志,它可以批量清理。例如,使用此过滤器删除所有用户定义的网络:

$ docker network rm `docker network ls --filter type=custom -q`

尝试删除已连接容器的网络时会发出警告。

格式化

格式化选项(--format)使用Go模板打印网络输出。

下面列出了Go模板的有效占位符:

占位符描述
.ID网络ID
.Name网络名字
.Driver网络驱动
.Scope网络范围(本地,全球)
.IPv6是否在网络上启用IPv6。
.Internal网络是否是内部的。
.Labels所有分配给网络的标签。
.Label此网络的特定标签的值。例如{{.Label“project.version”}}
.CreatedAt网络创建的时间

当使用--format选项时,network ls命令将完全按照模板声明输出数据,或者在使用table指令时也包含列标题。

下面的示例使用的模板没有报头,并输出IDDriver通过对所有网络冒号分隔的条目:

$ docker network ls --format "{{.ID}}: {{.Driver}}" afaaab448eb2: bridge d1584f8dc718: host 391df270dc66: null