1、docker network ls 简介
docker network ls
是Docker命令行工具中的一个命令,用于列出所有的网络。
参考文档:https://docs.docker.com/engine/reference/commandline/network_ls/
2、docker network ls 语法
docker network ls [OPTIONS]
3、docker network ls 命令
1)列出所有网络
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
2)筛选(--filter)
筛选标志(-f
或--filter
)的格式是键=值对。如果有多个筛选条件,则需要传递多个标志(例如,--filter "foo=bar" --filter "bif=baz"
)。多个筛选标志会组合成OR筛选条件。例如,-f type=custom -f type=builtin
可以返回自定义和内置网络。
目前支持的筛选条件有:
- driverid(网络ID)
- label(label=或label==)
- name(网络名称)
- scope(swarm|global|local)
- type(custom|builtin)
3)Driver
驱动程序筛选器根据网络的驱动程序进行匹配。
以下示例将匹配带有bridge驱动程序的网络:
docker network ls --filter driver=bridge NETWORK ID NAME DRIVER SCOPE db9db329f835 test1 bridge local f6e212da9dfd test2 bridge local
4)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
5)Label
标签筛选器仅基于标签或标签和值匹配网络。
以下示例将匹配具有usage标签的所有网络,无论其值如何:
docker network ls -f "label=usage" NETWORK ID NAME DRIVER SCOPE db9db329f835 test1 bridge local f6e212da9dfd test2 bridge local
以下示例将匹配具有prod值的usage标签的所有网络:
docker network ls -f "label=usage=prod" NETWORK ID NAME DRIVER SCOPE f6e212da9dfd test2 bridge local
6)Name
名称筛选器匹配一部分或全部网络名称。
以下示例将匹配所有名称包含字符串foobar的网络。
docker network ls --filter name=foobar NETWORK ID NAME DRIVER SCOPE 06e7eef0a170 foobar bridge local
也可以按名称中的子字符串过滤,如下所示:
docker network ls -f "label=usage=prod" NETWORK ID NAME DRIVER SCOPE f6e212da9dfd test2 bridge local
7)Scope
范围筛选器根据其范围匹配网络。
以下示例将匹配具有swarm范围的所有网络:
docker network ls --filter scope=swarm NETWORK ID NAME DRIVER SCOPE xbtm0v4f1lfh ingress overlay swarm ic6r88twuu92 swarmnet overlay swarm
以下示例将匹配具有本地范围的所有网络:
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
8)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`
尝试删除与容器相关联的网络时,会发出警告。
9)格式化输出(--format)
使用Go模板,格式选项(--format)可对网络输出进行漂亮的打印。
下面列出了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"}
4、命令选项
选项 | 默认值 | 描述 |
--filter 或 -f | 提供筛选条件,例如:driver=bridge | |
--format | table | 使用自定义模板格式化输出: ‘table’:以表格格式打印输出, 并显示列头(默认) ‘table TEMPLATE’: 使用给定的Go模板以表格格式打印输出 ‘json’:以JSON格式打印输出 ‘TEMPLATE’:使用给定的Go模板打印输出。 有关使用模板格式化输出的更多信息,请参见 |
--no-trunc | 不截断输出 | |
--quiet 或 -q | 仅显示网络ID |
5、子命令
命令 | 描述 |
docker network connect | 将容器连接到网络 |
docker network create | 创建一个网络 |
docker network disconnect | 断开容器与网络之间的连接 |
docker network inspect | 显示一个或多个网络的详细信息 |
docker network ls | 列出所有网络 |
docker network prune | 删除所有未使用的网络 |
docker network rm | 删除一个或多个网络 |