docker network inspect 명령으로 네트워크 세부 정보 확인 방법

DockerBeginner
지금 연습하기

소개

이 랩에서는 docker network inspect 명령을 사용하여 Docker 네트워크에 대한 자세한 정보를 확인하는 방법을 배우게 됩니다. 먼저 작업할 사용자 지정 Docker 네트워크를 생성하는 것으로 시작합니다.

네트워크 생성 후, 해당 구성을 검사하는 다양한 방법을 살펴봅니다. 여기에는 기본 JSON 출력 사용, 사용자 지정 출력을 위한 Go 템플릿 적용, 그리고 더 광범위한 세부 정보를 위한 verbose 옵션 활용이 포함됩니다. 마지막으로, 여러 네트워크를 동시에 검사하는 방법을 배우게 됩니다.

사용자 지정 Docker 네트워크 생성

이 단계에서는 Docker 에서 사용자 지정 네트워크를 생성하는 방법을 배우게 됩니다. 기본적으로 Docker 는 여러 네트워크 드라이버를 제공하지만, 사용자 지정 네트워크를 생성하면 컨테이너를 격리하고 컨테이너 간의 통신 방식을 제어할 수 있습니다.

네트워크를 생성하기 전에, docker network ls 명령을 사용하여 시스템에 있는 기존 네트워크를 확인해 보겠습니다.

docker network ls

bridge, host, none과 같은 몇 가지 기본 네트워크가 표시될 것입니다.

이제 bridge 드라이버를 사용하여 my-custom-network라는 새 사용자 지정 네트워크를 생성해 보겠습니다. bridge 드라이버는 기본 네트워크 드라이버이며 대부분의 사용 사례에 적합합니다.

docker network create my-custom-network

명령을 실행하면 Docker 가 네트워크를 생성하고 해당 ID 를 출력합니다.

네트워크가 성공적으로 생성되었는지 확인하려면 docker network ls 명령을 다시 실행하십시오.

docker network ls

이제 사용 가능한 네트워크 목록에 my-custom-network가 표시되어야 합니다.

기본 JSON 형식으로 사용자 지정 네트워크 검사

이 단계에서는 docker network inspect 명령을 사용하여 Docker 네트워크의 세부 정보를 검사하는 방법을 배우게 됩니다. 기본적으로 이 명령은 네트워크 구성 정보를 JSON 형식으로 출력하며, 네트워크 ID, 이름, 드라이버, 서브넷, 게이트웨이 및 연결된 컨테이너를 포함한 포괄적인 정보를 제공합니다.

이전 단계에서 생성한 my-custom-network를 검사하려면 다음 명령을 사용하십시오.

docker network inspect my-custom-network

이 명령은 my-custom-network의 구성을 나타내는 자세한 JSON 객체를 출력합니다. 이 출력을 검토하여 네트워크의 속성을 이해할 수 있습니다.

출력에는 다음과 같은 필드가 포함됩니다.

  • Name: 네트워크의 이름 (my-custom-network).
  • Id: 네트워크의 고유 ID.
  • Driver: 사용된 네트워크 드라이버 (bridge).
  • Scope: 네트워크의 범위 (일반적으로 local).
  • IPAM: 서브넷 및 게이트웨이를 포함한 IP 주소 관리 (IP Address Management) 에 대한 정보.
  • Containers: 이 네트워크에 연결된 컨테이너 목록 (처음에는 비어 있음).

docker network inspect의 출력을 이해하는 것은 네트워크 문제를 디버깅하고 컨테이너가 어떻게 연결되어 있는지 이해하는 데 중요합니다.

Go 템플릿을 사용하여 사용자 지정 네트워크 검사

이 단계에서는 docker network inspect 명령과 함께 Go 템플릿을 사용하여 네트워크 구성에서 특정 정보를 추출하는 방법을 배우게 됩니다. 이는 특정 세부 정보만 필요하고 전체 JSON 출력을 구문 분석하고 싶지 않을 때 유용합니다.

-f 또는 --format 플래그를 사용하면 Go 템플릿을 지정할 수 있습니다. 템플릿은 Go 템플릿 구문을 사용하여 JSON 출력 내의 필드에 액세스합니다.

네트워크의 ID 와 드라이버만 보고 싶다고 가정해 보겠습니다. 다음 템플릿을 사용할 수 있습니다: {{.Id}} {{.Driver}}.

my-custom-network를 검사하고 이 템플릿을 사용하여 출력을 형식화하려면 다음 명령을 실행하십시오.

docker network inspect -f '{{.Id}} {{.Driver}}' my-custom-network

출력은 네트워크 ID 다음에 드라이버 이름이 공백으로 구분되어 표시됩니다.

중첩된 필드에도 액세스할 수 있습니다. 예를 들어, IPAM 구성에서 서브넷을 가져오려면 템플릿 {{.IPAM.Config}}를 사용할 수 있습니다. IPAM.Config는 목록이므로 여러 구성이 있는 경우 반복하거나 특정 요소에 액세스해야 할 수 있습니다. 간단하게, 구성이 하나만 있고 Config 목록의 첫 번째 요소 내의 Subnet 필드에 액세스한다고 가정해 보겠습니다: {{(index .IPAM.Config 0).Subnet}}.

네트워크를 검사하고 네트워크 이름과 서브넷을 표시해 보겠습니다.

docker network inspect -f 'Name: {{.Name}}, Subnet: {{(index .IPAM.Config 0).Subnet}}' my-custom-network

이 명령은 네트워크 이름과 해당 서브넷을 더 읽기 쉬운 형식으로 출력합니다.

Go 템플릿을 사용하면 Docker 명령의 출력을 사용자 지정하고 필요한 정보를 정확하게 추출하는 강력한 방법을 제공합니다.

자세한 출력으로 사용자 지정 네트워크 검사

이 단계에서는 --verbose 또는 -v 플래그를 사용하여 Docker 네트워크를 검사할 때 더 자세한 정보를 얻는 방법을 배우게 됩니다. 이 플래그는 기본 출력에 포함되지 않은 추가 세부 정보를 제공하며, 고급 디버깅 및 네트워크의 내부 상태를 이해하는 데 도움이 될 수 있습니다.

상세 출력으로 my-custom-network를 검사하려면 다음 명령을 사용하십시오.

docker network inspect -v my-custom-network

출력은 기본 JSON 출력과 유사하지만 추가 필드와 세부 정보가 포함됩니다. 정확한 추가 정보는 네트워크 드라이버 및 Docker 버전에 따라 다를 수 있지만, 일반적으로 네트워크 구성 및 상태에 대한 더 낮은 수준의 세부 정보를 포함합니다.

예를 들어, bridge 드라이버의 경우 상세 출력에는 MAC 주소 및 IP 주소를 포함하여 호스트 시스템의 기본 브리지 인터페이스에 대한 세부 정보가 포함될 수 있습니다. 또한 IPAM 구성에 대한 더 자세한 정보를 표시할 수도 있습니다.

기본 출력은 대부분의 경우에 충분하지만, 상세 출력은 네트워크 구성을 더 자세히 살펴보고 복잡한 네트워킹 문제를 해결해야 할 때 매우 유용할 수 있습니다.

이 명령의 출력을 이전 단계의 출력과 비교하여 verbose 플래그가 제공하는 추가 정보를 확인하십시오.

여러 네트워크 검사

이 단계에서는 docker network inspect 명령을 사용하여 여러 Docker 네트워크를 동시에 검사하는 방법을 배우게 됩니다. 이는 서로 다른 네트워크의 구성을 비교하거나 여러 네트워크에 대한 정보를 한 번에 얻어야 할 때 유용할 수 있습니다.

여러 네트워크를 검사하려면 docker network inspect 명령에 네트워크의 이름 또는 ID 를 공백으로 구분하여 인수로 제공하면 됩니다.

생성한 my-custom-network와 기본 bridge 네트워크를 검사해 보겠습니다.

docker network inspect my-custom-network bridge

이 명령은 my-custom-networkbridge 네트워크 모두에 대한 JSON 구성을 출력합니다. 각 네트워크에 대한 출력은 별도의 JSON 객체가 됩니다.

이전 단계에서 배운 형식 옵션과 함께 여러 네트워크 검사를 결합할 수도 있습니다. 예를 들어, Go 템플릿을 사용하여 두 네트워크의 이름과 드라이버를 얻으려면 다음과 같이 합니다.

docker network inspect -f 'Name: {{.Name}}, Driver: {{.Driver}}' my-custom-network bridge

이렇게 하면 지정된 각 네트워크의 이름과 드라이버가 별도의 줄에 출력됩니다.

Docker 환경에서 여러 네트워크를 관리할 때 여러 네트워크를 한 번에 검사하면 워크플로우를 크게 간소화할 수 있습니다.

요약

이 Lab 에서는 docker network create 명령을 사용하여 사용자 지정 Docker 네트워크를 생성하고 docker network ls로 생성을 확인하는 방법을 배웠습니다. 그런 다음 docker network inspect 명령을 사용하여 자세한 네트워크 구성을 확인했습니다.

기본 JSON 출력을 사용하여 네트워크를 검사하고, 사용자 지정 출력을 위해 Go 템플릿을 활용하고, 자세한 정보를 얻는 연습을 했습니다. 마지막으로, 여러 네트워크를 동시에 검사하는 방법을 배웠습니다.