docker network prune

docker network prune

docker network prune 명령은 사용하지 않는 모든 네트워크를 제거합니다.

출처: 문서

본문

사용하지 않는 모든 네트워크를 제거하는 명령어예요. 사용하지 않는 네트워크는 어떤 컨테이너에서도 참조되지 않는 네트워크를 말해요.

구분 내용
Description 사용하지 않는 모든 네트워크 제거
Usage docker network prune [OPTIONS]

옵션 (Options)

옵션 기본값 설명
--filter 필터 값 제공 (예: until=<timestamp>)
-f, --force 확인 프롬프트를 표시하지 않음

예시 (Examples)

$ docker network prune

WARNING! This will remove all custom networks not used by at least one container.
Are you sure you want to continue? [y/N] y
Deleted Networks:
n1
n2

필터링 (--filter)

필터링 플래그(--filter) 형식은 "key=value"예요. 필터가 둘 이상이면 여러 플래그를 전달해요 (예: --filter "foo=bar" --filter "bif=baz").

여러 필터가 제공되면 다음과 같이 결합돼요:

  • 키가 다른 여러 필터는 AND 로직으로 결합돼요. 네트워크는 모든 필터 조건을 충족해야 제거돼요.
  • 같은 키를 가진 여러 필터는 OR 로직으로 결합돼요. 해당 키의 값 중 하나라도 매칭되면 네트워크가 제거돼요.

예를 들어 --filter "label=foo" --filter "until=24h"foo 라벨이 있고 동시에 24시간 전에 생성된 네트워크를 제거해요. 반대로 --filter "label=foo" --filter "label=bar"foo 또는 bar 라벨 중 하나라도 가진 네트워크를 제거해요.

현재 지원되는 필터:

  • until (<timestamp>) - 주어진 타임스탬프 이전에 생성된 네트워크만 제거
  • label (label=<key>, label=<key>=<value>, label!=<key>, 또는 label!=<key>=<value>) - 지정된 라벨이 있는(또는 label!=...를 사용할 경우 없는) 네트워크만 제거

until 필터는 Unix 타임스탬프, 날짜 형식 타임스탬프, 또는 데몬 머신 시간 기준으로 계산된 ParseDuration이 지원하는 Go duration 문자열(예: 10m, 1h30m)일 수 있어요. 날짜 형식 타임스탬프에 지원되는 형식에는 RFC3339Nano, RFC3339, 2006-01-02T15:04:05, 2006-01-02T15:04:05.999999999, 2006-01-02T07:00, 2006-01-02가 있어요. 타임스탬프 끝에 Z 또는 +-00:00 시간대 오프셋을 제공하지 않으면 데몬의 로컬 시간대가 사용돼요. Unix 타임스탬프를 제공할 때는 seconds[.nanoseconds]를 입력하는데, seconds는 1970년 1월 1일(UTC/GMT 자정) 이후 경과한 초 수(Unix epoch 또는 Unix time)로 윤초는 제외하며, 선택적 .nanoseconds 필드는 9자리를 넘지 않는 초의 분수예요.

label 필터는 두 형식을 받아요. 하나는 label=...(label=<key> 또는 label=<key>=<value>)로 지정된 라벨이 있는 네트워크를 제거해요. 다른 형식은 label!=...(label!=<key> 또는 label!=<key>=<value>)로 지정된 라벨이 없는 네트워크를 제거해요.

다음은 5분 전에 생성된 네트워크를 제거해요. bridge, host, none 같은 시스템 네트워크는 절대 정리되지 않는다는 점에 유의해요:

$ docker network ls

NETWORK ID          NAME                DRIVER              SCOPE
7430df902d7a        bridge              bridge              local
ea92373fd499        foo-1-day-ago       bridge              local
ab53663ed3c7        foo-1-min-ago       bridge              local
97b91972bc3b        host                host                local
f949d337b1f5        none                null                local

$ docker network prune --force --filter until=5m

Deleted Networks:
foo-1-day-ago

$ docker network ls

NETWORK ID          NAME                DRIVER              SCOPE
7430df902d7a        bridge              bridge              local
ab53663ed3c7        foo-1-min-ago       bridge              local
97b91972bc3b        host                host                local
f949d337b1f5        none                null                local