Docker命令行参考(31) – docker network ls列出网络

  1. Usage:  docker network ls [OPTIONS]
  2.  
  3. List networks
  4.  
  5. Aliases:
  6.   ls, list
  7.  
  8. Options:
  9.   -f, --filter value   Provide filter values (i.e. 'dangling=true') (default [])
  10.       --help           Print usage
  11.       --no-trunc       Do not truncate the output
  12.   -q, --quiet          Only display network IDs

列出Engine daemon知道的所有网络。这包括跨集群中多个主机的网络,例如:

  1. $ sudo docker network ls
  2.     NETWORK ID          NAME                DRIVER
  3.     7fca4eb8c647        bridge              bridge
  4.     9f904ee27bf5        none                null
  5.     cf03ee007fb4        host                host
  6.     78b03ee04fc4        multi-host          overlay

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

  1. docker network ls --no-trunc
  2. NETWORK ID                                                         NAME                DRIVER
  3. 18a2866682b85619a026c81b98a5e375bd33e1b0936a26cc497c283d27bae9b3   none                null
  4. c288470c46f6c8949c5f7e5099b5b7947b07eabe8d9a27d79a9cbf111adcbf47   host                host
  5. 7b369448dccbf865d397c8d2be0cda7cf7edc6b0945f77d2529912ae917a0185   bridge              bridge
  6. 95e74588f40db048e86320c6526440c504650a1ff3e9f7d60a497c4d2163e5bd   foo                 bridge
  7. 63d1ff1f77b07ca51070a8c227e962238358bd310bde1529cf62e6c307ade161   dev                 bridge

过滤

过滤标志(-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 (网络名称)
  • type (custom builtin)
  • Driver

    driver过滤器基于它们的驱动匹配网络。
    下面的示例匹配使用bridge驱动的网络:

    1. $ docker network ls --filter driver=bridge
    2. NETWORK ID          NAME                DRIVER
    3. db9db329f835        test1               bridge
    4. f6e212da9dfd        test2               bridge

    ID

    id过滤器基于完整或部分网络ID匹配网络。
    下面的示例是过滤出包含ID 63d1ff1f77b0…字符串的网络。

    1. $ docker network ls --filter id=63d1ff1f77b07ca51070a8c227e962238358bd310bde1529cf62e6c307ade161
    2. NETWORK ID          NAME                DRIVER
    3. 63d1ff1f77b0        dev                 bridge

    也可以使用ID的部分字符来匹配:

    1. $ docker network ls --filter id=95e74588f40d
    2. NETWORK ID          NAME                DRIVER
    3. 95e74588f40d        foo                 bridge
    4.  
    5. $ docker network ls --filter id=95e
    6. NETWORK ID          NAME                DRIVER
    7. 95e74588f40d        foo                 bridge

    Label

    label过滤器基于label的存在或label和其值来匹配网络。
    下面的示例过滤出有一个usage label而不管它是什么值的所有网络。

    1. $ docker network ls -f "label=usage"
    2. NETWORK ID          NAME                DRIVER
    3. db9db329f835        test1               bridge
    4. f6e212da9dfd        test2               bridge

    下面过滤出存在usage label且值为prod的网络。

    1. $ docker network ls -f "label=usage=prod"
    2. NETWORK ID          NAME                DRIVER
    3. f6e212da9dfd        test2               bridge

    Name

    name过滤器基于网络名称的全部或部分匹配网络。
    下面示例过滤出网络名称包含foobar字符中的所有网络。

    1. $ docker network ls --filter name=foobar
    2. NETWORK ID          NAME                DRIVER
    3. 06e7eef0a170        foobar              bridge

    也可以指定名称的部分匹配:

    1. $ docker network ls --filter name=foo
    2. NETWORK ID          NAME                DRIVER
    3. 95e74588f40d        foo                 bridge
    4. 06e7eef0a170        foobar              bridge

    Type

    type过滤器支持两个值;builtin显示预定义的网络(bridge,none,host),costom显示用户定义的网络。
    下面示例过滤出所有用户定义的网络:

    1. $ docker network ls --filter type=custom
    2. NETWORK ID          NAME                DRIVER
    3. 95e74588f40d        foo                 bridge
    4. 63d1ff1f77b0        dev                 bridge

    通过这个命令可以清理网络。例如,使用这个过滤可以删除所有的用户定义的网络:

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

    当尝试删除仍然有容器连接到的网络时将出现一个waring。

    标签:Docker 发布于:2019-11-19 08:08:03