Go 템플릿을 사용하여 inspect 출력 포맷팅
이 단계에서는 docker inspect 명령의 출력을 형식화하기 위해 Go 템플릿을 사용하는 방법을 배우게 됩니다. 이를 통해 자세한 JSON 출력에서 특정 정보 조각을 추출하여 사용자 지정 형식으로 표시할 수 있습니다.
먼저, 계속 실행되는 컨테이너를 실행해 보겠습니다.
docker run -d --name my-templated-container ubuntu sleep infinity
이제 이 컨테이너를 검사하고 Go 템플릿을 사용하여 IP 주소만 표시해 보겠습니다. IP 주소는 검사 출력의 NetworkSettings.IPAddress 필드 내에 있습니다.
docker inspect --format '{{.NetworkSettings.IPAddress}}' my-templated-container
이 명령에서:
--format '{{.NetworkSettings.IPAddress}}': 이 플래그는 Go 템플릿을 사용하여 형식을 지정합니다.
{{...}}: 이중 중괄호는 Go 템플릿에서 작업을 나타냅니다.
.: 이는 검사 중인 루트 객체 (컨테이너) 를 나타냅니다.
NetworkSettings: 이는 루트 객체 내의 NetworkSettings 필드에 액세스합니다.
IPAddress: 이는 NetworkSettings 객체 내의 IPAddress 필드에 액세스합니다.
이 명령의 출력은 컨테이너의 IP 주소만 표시됩니다.
Go 템플릿을 사용하여 다양한 정보 조각을 추출할 수 있습니다. 예를 들어, 컨테이너의 이름과 ID 를 얻으려면 다음과 같이 할 수 있습니다.
docker inspect --format 'Name: {{.Name}}, ID: {{.Id}}' my-templated-container
그러면 Name: /my-templated-container, ID: <container_id>와 같은 출력이 생성됩니다.
Go 템플릿은 조건문, 루프 및 함수를 포함한 강력한 형식 지정 기능을 제공합니다. 그러나 이 기본 예제에서는 필드에 액세스하기만 합니다.
검사 후 컨테이너를 중지하고 제거합니다.
docker stop my-templated-container
docker rm my-templated-container