docker network ls
docker network ls
docker network ls 명령은 네트워크 목록을 보여줍니다.
출처: 문서
본문
Engine daemon이 알고 있는 모든 네트워크를 나열하는 명령어예요. 클러스터에서 여러 호스트에 걸쳐 있는 네트워크도 포함돼요.
| 구분 | 내용 |
|---|---|
| Description | 네트워크 목록 보기 |
| Usage | docker network ls [OPTIONS] |
| Aliases | docker network list |
옵션 (Options)
| 옵션 | 기본값 | 설명 |
|---|---|---|
-f, --filter |
필터 값 제공 (예: driver=bridge) |
|
--format |
사용자 정의 템플릿으로 출력 형식: 'table': 열 헤더가 있는 테이블 형식 출력 (기본값) 'table TEMPLATE': 주어진 Go 템플릿으로 테이블 형식 출력 'json': JSON 형식 출력 'TEMPLATE': 주어진 Go 템플릿으로 출력. 템플릿 출력 형식에 대한 자세한 내용은 https://docs.docker.com/go/formatting/ 참조 | |
--no-trunc |
출력 자르지 않기 | |
-q, --quiet |
네트워크 ID만 표시 |
예시 (Examples)
모든 네트워크 나열
$ 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=<key>또는label=<key>=<value>) - 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"}