Profile picture

[Docker] 도커 출력 옵션 (--format, --filter)

JaehyoJJAng2023년 02월 01일

--format

  • --format은 명령어 출력 결과를 특정 포맷(Format) 으로 변환한다.
  • 사용자는 템플릿 언어를 사용하여 출력 모양을 커스텀할 수 있다.
  • 이 옵션은 JSON이나 사용자 정의 텍스트 형식으로 결과 출력 시 유용하다.

사용 방법

  • --format 뒤에 GO 템플릿 형식을 사용한다.
  • 템플릿 안에서 .FieldName 형태로 각 필드 값을 참조한다.

사용 예시

# 컨테이너의 이름과 이미지만 출력하는 경우
docker ps --format "{{.Names}}: {{.Image}}"

# 이미지 ID와 크기만 출력하는 경우
docker images --format "{{.ID}}: {{.Size}}"

# JSON 형태로 컨테이너 종부를 출력하는 경우
docker ps --format "{{json .}}"

# 특정 컨테이너의 실행 정보 출력하기
docker inspect --format "{{.State.Status}}" <컨테이너명 또는 컨테이너ID>

--filter

  • --filter는 출력 결과를 특정 조건에 맞게 필터링 한다.
  • 이를 통해 사용자는 필요한 정보만 추출할 수 있다.

사용 방법

  • --filter key=value 형식으로 사용한다.

사용 예시

# 실행 중인 컨테이너만 보기
docker ps --filter "status=running"

# 특정 이름을 가진 컨테이너만 보기
docker ps --filter "name=my-app"

# 특정 라벨을 가진 이미지만 보기
docker images --filter "label=app=web"

--filter와 --format 혼합 사용

사용 예시

# 실행 중인 컨테이너의 이름과 이미지 출력
docker ps --filter "status=running" --format "{{.Names}}: {{.Image}}"

--format 템플릿의 필드 확인 방법

--format에서 사용할 수 있는 템플릿 필드는 어디서 확인하는걸까?

JSON 형식으로 전체 데이터를 출력하여 템플릿 필드를 확인해보자.

# 컨테이너 데이터 전체 출력 (JSON 형식)
docker ps --format '{{json .}}'

위 명령을 실행해 나온 JSON 결과에서 key:value를 확인하고, --format에서 적절히 사용해주면 된다.


Loading script...