가장 빨리 만나는 Docker 20장 - 14. inspect

저작권 안내
  • 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
  • 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.

Docker 명령어 및 옵션 목록

이재홍 http://www.pyrasis.com 2014.08.02 ~ 2014.09.20

inspect

다음은 컨테이너와 이미지의 세부 정보를 JSON 형태로 출력하는 inspect 명령입니다.

docker inspect <옵션> <컨테이너 또는 이미지 이름, ID>
  • -f, --format="": 지정한 정보만 출력합니다. "{{ .NetworkSettings.IPAddress }}"처럼 .(점)으로 JSON 문서의 하위 항목을 설정할 수 있습니다.

다음 명령은 이미지의 세부 정보에서 아키텍처와 OS를 출력합니다.

$ sudo docker inspect -f "{{ .Architecture }} {{ .Os }}" ubuntu:14.04
amd64 linux

다음 명령은 컨테이너의 IP 주소를 출력합니다.

$ sudo docker run -i -t -d --name hello ubuntu:14.04 /bin/bash
$ sudo docker inspect -f "{{ .NetworkSettings.IPAddress }}" hello
172.17.0.85

다음 명령은 세부 정보의 일부 내용을 JSON 형태로 출력합니다.

$ sudo docker inspect -f "{{json .NetworkSettings}}" hello
{"Bridge":"docker0","Gateway":"172.17.42.1","IPAddress":"172.17.0.85","IPPrefixLen":16,"PortMapping":null,"Ports":{"80/tcp":[{"HostIp":"0.0.0.0","HostPort":"80"}],"8080/tcp}

다음 명령은 컨테이너의 세부 정보에서 특정 부분만 추출하여 원하는 포맷으로 출력합니다.

$ sudo docker run -i -t -d --name hello -p 80:80 -p 8080:8080 ubuntu:14.04 /bin/bash
$ sudo docker inspect -f '{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' hello
80/tcp -> 80  8080/tcp -> 8080

.NetworkSettings.Ports의 내용은 다음과 같습니다.

"Ports": {
    "80/tcp": [
        {
            "HostIp": "0.0.0.0",
            "HostPort": "80"
        }
    ],
    "8080/tcp": [
        {
            "HostIp": "0.0.0.0",
            "HostPort": "8080"
        }
    ]
}

여기서 {{range $p, $conf := .NetworkSettings.Ports}}으로 .NetworkSettings.Ports의 내용을 순회하면서 $p, $conf에 대입합니다. 그리고 $p는 그대로 출력하고, $conf 배열에서 첫 번째 항목(index $conf 0)의 .HostPort를 출력합니다.

{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}

저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.

Published

2014-11-30