docker network ls
描述 | 列出网络 |
---|---|
用法 | docker network ls [OPTIONS] |
别名 | docker network list |
描述
列出 Engine `daemon` 所知道的所有网络。这包括跨集群中多个主机的网络。
选项
选项 | 默认值 | 描述 |
---|---|---|
-f, --filter | 提供过滤器值(例如 `driver=bridge`) | |
--format | 使用自定义模板格式化输出 'table':以表格格式输出,包含列头(默认) 'table TEMPLATE':使用指定的 Go 模板以表格格式输出 'json':以 JSON 格式输出 'TEMPLATE':使用指定的 Go 模板输出。 有关使用模板格式化输出的更多信息,请参阅 https://docs.docker.net.cn/go/formatting/ | |
--no-trunc | 不截断输出 | |
-q, --quiet | 仅显示网络 ID |
示例
列出所有网络
$ 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
列出网络而不截断 ID 列(--no-trunc)
使用 `--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
过滤(--filter)
过滤标志(`-f` 或 `--filter`)的格式为 `key=value` 对。如果存在多个过滤器,则传递多个标志(例如 `--filter "foo=bar" --filter "bif=baz"`)。多个过滤标志组合为 `OR` 过滤器。例如,`-f type=custom -f type=builtin` 返回 `custom` 和 `builtin` 两种类型的网络。
目前支持的过滤器有
- driver
- id(网络 ID)
- label(`label=
` 或 `label= = `) - 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 的全部或部分。
以下过滤器匹配所有 ID 包含 `63d1ff1f77b0...` 字符串的网络。
$ 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` 本身或 `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
`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
`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
`type` 过滤器支持两个值;`builtin` 显示预定义网络(`bridge`、`none`、`host`),而 `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)
格式化选项(`--format`)使用 Go 模板美观地打印网络输出。
Go 模板的有效占位符如下所示
占位符 | 描述 |
---|---|
.ID | 网络 ID |
.Name | 网络名称 |
.Driver | 网络驱动程序 |
.Scope | 网络范围(local, global) |
.IPv6 | 是否在网络上启用了 IPv6。 |
.Internal | 网络是否为内部网络。 |
.Labels | 分配给网络的所有标签。 |
.Label | 此网络的特定标签的值。例如 `{{.Label "project.version"}}` |
.CreatedAt | 网络创建时间 |
使用 `--format` 选项时,`network ls` 命令将完全按照模板声明的方式输出数据,或者在使用 `table` 指令时,也包含列头。
以下示例使用不带列头的模板,并输出所有网络的 `ID` 和 `Driver` 条目,用冒号(`:`)分隔
$ docker network ls --format "{{.ID}}: {{.Driver}}"
afaaab448eb2: bridge
d1584f8dc718: host
391df270dc66: null
要以 JSON 格式列出所有网络,请使用 `json` 指令
$ docker network ls --format json
{"CreatedAt":"2021-03-09 21:41:29.798999529 +0000 UTC","Driver":"bridge","ID":"f33ba176dd8e","IPv6":"false","Internal":"false","Labels":"","Name":"bridge","Scope":"local"}
{"CreatedAt":"2021-03-09 21:41:29.772806592 +0000 UTC","Driver":"host","ID":"caf47bb3ac70","IPv6":"false","Internal":"false","Labels":"","Name":"host","Scope":"local"}
{"CreatedAt":"2021-03-09 21:41:29.752212603 +0000 UTC","Driver":"null","ID":"9d096c122066","IPv6":"false","Internal":"false","Labels":"","Name":"none","Scope":"local"}