Usage: docker network ls [OPTIONS] List networks Aliases: ls, list Options: -f, --filter value Provide filter values (i.e. 'dangling=true') (default []) --help Print usage --no-trunc Do not truncate the output -q, --quiet Only display network IDs
列出Engine daemon知道的所有网络。这包括跨集群中多个主机的网络,例如:
$ sudo docker network ls NETWORK ID NAME DRIVER 7fca4eb8c647 bridge bridge 9f904ee27bf5 none null cf03ee007fb4 host host 78b03ee04fc4 multi-host overlay
使用–no-trunc选项显示完整的网络id:
docker network ls --no-trunc NETWORK ID NAME DRIVER 18a2866682b85619a026c81b98a5e375bd33e1b0936a26cc497c283d27bae9b3 none null c288470c46f6c8949c5f7e5099b5b7947b07eabe8d9a27d79a9cbf111adcbf47 host host 7b369448dccbf865d397c8d2be0cda7cf7edc6b0945f77d2529912ae917a0185 bridge bridge 95e74588f40db048e86320c6526440c504650a1ff3e9f7d60a497c4d2163e5bd foo bridge 63d1ff1f77b07ca51070a8c227e962238358bd310bde1529cf62e6c307ade161 dev bridge
过滤标志(-f或–filter)格式是key=value。如果超过一个过滤,那么传递多个标志(如 –filter “foo=bar” –filter “bif=baz”)。多个过滤标志作为一个OR过滤连接。例如-f type=custom -f type=builtin返回custom和builtin网络。
目前支持的过滤有:
driver过滤器基于它们的驱动匹配网络。
下面的示例匹配使用bridge驱动的网络:
$ docker network ls --filter driver=bridge NETWORK ID NAME DRIVER db9db329f835 test1 bridge f6e212da9dfd test2 bridge
id过滤器基于完整或部分网络ID匹配网络。
下面的示例是过滤出包含ID 63d1ff1f77b0…字符串的网络。
$ docker network ls --filter id=63d1ff1f77b07ca51070a8c227e962238358bd310bde1529cf62e6c307ade161 NETWORK ID NAME DRIVER 63d1ff1f77b0 dev bridge
也可以使用ID的部分字符来匹配:
$ docker network ls --filter id=95e74588f40d NETWORK ID NAME DRIVER 95e74588f40d foo bridge $ docker network ls --filter id=95e NETWORK ID NAME DRIVER 95e74588f40d foo bridge
label过滤器基于label的存在或label和其值来匹配网络。
下面的示例过滤出有一个usage label而不管它是什么值的所有网络。
$ docker network ls -f "label=usage" NETWORK ID NAME DRIVER db9db329f835 test1 bridge f6e212da9dfd test2 bridge
下面过滤出存在usage label且值为prod的网络。
$ docker network ls -f "label=usage=prod" NETWORK ID NAME DRIVER f6e212da9dfd test2 bridge
name过滤器基于网络名称的全部或部分匹配网络。
下面示例过滤出网络名称包含foobar字符中的所有网络。
$ docker network ls --filter name=foobar NETWORK ID NAME DRIVER 06e7eef0a170 foobar bridge
也可以指定名称的部分匹配:
$ docker network ls --filter name=foo NETWORK ID NAME DRIVER 95e74588f40d foo bridge 06e7eef0a170 foobar bridge
type过滤器支持两个值;builtin显示预定义的网络(bridge,none,host),costom显示用户定义的网络。
下面示例过滤出所有用户定义的网络:
$ docker network ls --filter type=custom NETWORK ID NAME DRIVER 95e74588f40d foo bridge 63d1ff1f77b0 dev bridge
通过这个命令可以清理网络。例如,使用这个过滤可以删除所有的用户定义的网络:
$ docker network rm `docker network ls --filter type=custom -q`
当尝试删除仍然有容器连接到的网络时将出现一个waring。