mirror of https://github.com/docker/cli.git
Add filter for `network ls` to hide predefined net
Add filter support for `network ls` to hide predefined network, then user can use "docker network rm `docker network ls -f type=custom`" to delete a bundle of userdefined networks. Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
This commit is contained in:
parent
a36ca600a0
commit
ed4cf608e2
|
@ -13,6 +13,7 @@ parent = "smn_cli"
|
||||||
Usage: docker network ls [OPTIONS]
|
Usage: docker network ls [OPTIONS]
|
||||||
|
|
||||||
Lists all the networks created by the user
|
Lists all the networks created by the user
|
||||||
|
-f, --filter=[] Filter output based on conditions provided
|
||||||
--help=false Print usage
|
--help=false Print usage
|
||||||
--no-trunc=false Do not truncate the output
|
--no-trunc=false Do not truncate the output
|
||||||
-q, --quiet=false Only display numeric IDs
|
-q, --quiet=false Only display numeric IDs
|
||||||
|
@ -38,8 +39,91 @@ NETWORK ID NAME
|
||||||
c288470c46f6c8949c5f7e5099b5b7947b07eabe8d9a27d79a9cbf111adcbf47 host host
|
c288470c46f6c8949c5f7e5099b5b7947b07eabe8d9a27d79a9cbf111adcbf47 host host
|
||||||
7b369448dccbf865d397c8d2be0cda7cf7edc6b0945f77d2529912ae917a0185 bridge bridge
|
7b369448dccbf865d397c8d2be0cda7cf7edc6b0945f77d2529912ae917a0185 bridge bridge
|
||||||
95e74588f40db048e86320c6526440c504650a1ff3e9f7d60a497c4d2163e5bd foo bridge
|
95e74588f40db048e86320c6526440c504650a1ff3e9f7d60a497c4d2163e5bd foo bridge
|
||||||
|
63d1ff1f77b07ca51070a8c227e962238358bd310bde1529cf62e6c307ade161 dev bridge
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Filtering
|
||||||
|
|
||||||
|
The filtering flag (`-f` or `--filter`) format is a `key=value` pair. If there
|
||||||
|
is more than one filter, then pass multiple flags (e.g. `--filter "foo=bar" --filter "bif=baz"`).
|
||||||
|
Multiple filter flags are combined as an `OR` filter. For example,
|
||||||
|
`-f type=custom -f type=builtin` returns both `custom` and `builtin` networks.
|
||||||
|
|
||||||
|
The currently supported filters are:
|
||||||
|
|
||||||
|
* id (network's id)
|
||||||
|
* name (network's name)
|
||||||
|
* type (custom|builtin)
|
||||||
|
|
||||||
|
#### Type
|
||||||
|
|
||||||
|
The `type` filter supports two values; `builtin` displays predefined networks
|
||||||
|
(`bridge`, `none`, `host`), whereas `custom` displays user defined networks.
|
||||||
|
|
||||||
|
The following filter matches all user defined networks:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker network ls --filter type=custom
|
||||||
|
NETWORK ID NAME DRIVER
|
||||||
|
95e74588f40d foo bridge
|
||||||
|
63d1ff1f77b0 dev bridge
|
||||||
|
```
|
||||||
|
|
||||||
|
By having this flag it allows for batch cleanup. For example, use this filter
|
||||||
|
to delete all user defined networks:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker network rm `docker network ls --filter type=custom -q`
|
||||||
|
```
|
||||||
|
|
||||||
|
A warning will be issued when trying to remove a network that has containers
|
||||||
|
attached.
|
||||||
|
|
||||||
|
#### Name
|
||||||
|
|
||||||
|
The `name` filter matches on all or part of a network's name.
|
||||||
|
|
||||||
|
The following filter matches all networks with a name containing the `foobar` string.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker network ls --filter name=foobar
|
||||||
|
NETWORK ID NAME DRIVER
|
||||||
|
06e7eef0a170 foobar bridge
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also filter for a substring in a name as this shows:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker ps --filter name=foo
|
||||||
|
NETWORK ID NAME DRIVER
|
||||||
|
95e74588f40d foo bridge
|
||||||
|
06e7eef0a170 foobar bridge
|
||||||
|
```
|
||||||
|
|
||||||
|
#### ID
|
||||||
|
|
||||||
|
The `id` filter matches on all or part of a network's ID.
|
||||||
|
|
||||||
|
The following filter matches all networks with a name containing the
|
||||||
|
`06e7eef01700` string.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker network ls --filter id=63d1ff1f77b07ca51070a8c227e962238358bd310bde1529cf62e6c307ade161
|
||||||
|
NETWORK ID NAME DRIVER
|
||||||
|
63d1ff1f77b0 dev bridge
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also filter for a substring in a ID as this shows:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker ps --filter id=95e74588f40d
|
||||||
|
NETWORK ID NAME DRIVER
|
||||||
|
95e74588f40d foo bridge
|
||||||
|
|
||||||
|
$ docker ps --filter id=95e
|
||||||
|
NETWORK ID NAME DRIVER
|
||||||
|
95e74588f40d foo bridge
|
||||||
|
```
|
||||||
|
|
||||||
## Related information
|
## Related information
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@ docker-network-ls - list networks
|
||||||
|
|
||||||
# SYNOPSIS
|
# SYNOPSIS
|
||||||
**docker network ls**
|
**docker network ls**
|
||||||
|
[**-f**|**--filter**[=*[]*]]
|
||||||
[**--no-trunc**[=*true*|*false*]]
|
[**--no-trunc**[=*true*|*false*]]
|
||||||
[**-q**|**--quiet**[=*true*|*false*]]
|
[**-q**|**--quiet**[=*true*|*false*]]
|
||||||
[**--help**]
|
[**--help**]
|
||||||
|
@ -16,7 +17,7 @@ Lists all the networks the Engine `daemon` knows about. This includes the
|
||||||
networks that span across multiple hosts in a cluster, for example:
|
networks that span across multiple hosts in a cluster, for example:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ sudo docker network ls
|
$ docker network ls
|
||||||
NETWORK ID NAME DRIVER
|
NETWORK ID NAME DRIVER
|
||||||
7fca4eb8c647 bridge bridge
|
7fca4eb8c647 bridge bridge
|
||||||
9f904ee27bf5 none null
|
9f904ee27bf5 none null
|
||||||
|
@ -27,16 +28,103 @@ networks that span across multiple hosts in a cluster, for example:
|
||||||
Use the `--no-trunc` option to display the full network id:
|
Use the `--no-trunc` option to display the full network id:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker network ls --no-trunc
|
$ docker network ls --no-trunc
|
||||||
NETWORK ID NAME DRIVER
|
NETWORK ID NAME DRIVER
|
||||||
18a2866682b85619a026c81b98a5e375bd33e1b0936a26cc497c283d27bae9b3 none null
|
18a2866682b85619a026c81b98a5e375bd33e1b0936a26cc497c283d27bae9b3 none null
|
||||||
c288470c46f6c8949c5f7e5099b5b7947b07eabe8d9a27d79a9cbf111adcbf47 host host
|
c288470c46f6c8949c5f7e5099b5b7947b07eabe8d9a27d79a9cbf111adcbf47 host host
|
||||||
7b369448dccbf865d397c8d2be0cda7cf7edc6b0945f77d2529912ae917a0185 bridge bridge
|
7b369448dccbf865d397c8d2be0cda7cf7edc6b0945f77d2529912ae917a0185 bridge bridge
|
||||||
95e74588f40db048e86320c6526440c504650a1ff3e9f7d60a497c4d2163e5bd foo bridge
|
95e74588f40db048e86320c6526440c504650a1ff3e9f7d60a497c4d2163e5bd foo bridge
|
||||||
|
63d1ff1f77b07ca51070a8c227e962238358bd310bde1529cf62e6c307ade161 dev bridge
|
||||||
|
```
|
||||||
|
|
||||||
|
## Filtering
|
||||||
|
|
||||||
|
The filtering flag (`-f` or `--filter`) format is a `key=value` pair. If there
|
||||||
|
is more than one filter, then pass multiple flags (e.g. `--filter "foo=bar" --filter "bif=baz"`).
|
||||||
|
Multiple filter flags are combined as an `OR` filter. For example,
|
||||||
|
`-f type=custom -f type=builtin` returns both `custom` and `builtin` networks.
|
||||||
|
|
||||||
|
The currently supported filters are:
|
||||||
|
|
||||||
|
* id (network's id)
|
||||||
|
* name (network's name)
|
||||||
|
* type (custom|builtin)
|
||||||
|
|
||||||
|
#### Type
|
||||||
|
|
||||||
|
The `type` filter supports two values; `builtin` displays predefined networks
|
||||||
|
(`bridge`, `none`, `host`), whereas `custom` displays user defined networks.
|
||||||
|
|
||||||
|
The following filter matches all user defined networks:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker network ls --filter type=custom
|
||||||
|
NETWORK ID NAME DRIVER
|
||||||
|
95e74588f40d foo bridge
|
||||||
|
63d1ff1f77b0 dev bridge
|
||||||
|
```
|
||||||
|
|
||||||
|
By having this flag it allows for batch cleanup. For example, use this filter
|
||||||
|
to delete all user defined networks:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker network rm `docker network ls --filter type=custom -q`
|
||||||
|
```
|
||||||
|
|
||||||
|
A warning will be issued when trying to remove a network that has containers
|
||||||
|
attached.
|
||||||
|
|
||||||
|
#### Name
|
||||||
|
|
||||||
|
The `name` filter matches on all or part of a network's name.
|
||||||
|
|
||||||
|
The following filter matches all networks with a name containing the `foobar` string.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker network ls --filter name=foobar
|
||||||
|
NETWORK ID NAME DRIVER
|
||||||
|
06e7eef0a170 foobar bridge
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also filter for a substring in a name as this shows:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker ps --filter name=foo
|
||||||
|
NETWORK ID NAME DRIVER
|
||||||
|
95e74588f40d foo bridge
|
||||||
|
06e7eef0a170 foobar bridge
|
||||||
|
```
|
||||||
|
|
||||||
|
#### ID
|
||||||
|
|
||||||
|
The `id` filter matches on all or part of a network's ID.
|
||||||
|
|
||||||
|
The following filter matches all networks with a name containing the
|
||||||
|
`06e7eef01700` string.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker network ls --filter id=63d1ff1f77b07ca51070a8c227e962238358bd310bde1529cf62e6c307ade161
|
||||||
|
NETWORK ID NAME DRIVER
|
||||||
|
63d1ff1f77b0 dev bridge
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also filter for a substring in a ID as this shows:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker ps --filter id=95e74588f40d
|
||||||
|
NETWORK ID NAME DRIVER
|
||||||
|
95e74588f40d foo bridge
|
||||||
|
|
||||||
|
$ docker ps --filter id=95e
|
||||||
|
NETWORK ID NAME DRIVER
|
||||||
|
95e74588f40d foo bridge
|
||||||
```
|
```
|
||||||
|
|
||||||
# OPTIONS
|
# OPTIONS
|
||||||
|
|
||||||
|
**-f**, **--filter**=*[]*
|
||||||
|
filter output based on conditions provided.
|
||||||
|
|
||||||
**--no-trunc**=*true*|*false*
|
**--no-trunc**=*true*|*false*
|
||||||
Do not truncate the output
|
Do not truncate the output
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue