소개
이 랩에서는 docker version 명령어를 사용하여 Docker Desktop 모듈을 나열하는 방법을 배우게 됩니다. 모든 모듈 나열, JSON 형식으로 출력 표시, 모듈 ID 만 추출하는 등 이 정보를 보는 다양한 방법을 살펴볼 것입니다. 이 실습을 통해 Docker 설치 구성 요소를 이해하고 이에 대한 정보를 검색하는 방법을 익힐 수 있습니다.
모든 Docker Desktop 모듈 나열
이 단계에서는 docker version 명령어를 사용하여 모든 Docker Desktop 모듈을 나열하는 방법을 배우겠습니다. docker version 명령어는 클라이언트 및 서버 구성 요소와 Docker Desktop 설치의 일부인 모듈을 포함하여 Docker 설치에 대한 자세한 정보를 제공합니다.
모든 Docker Desktop 모듈을 나열하려면 터미널을 열고 다음 명령을 실행하십시오.
docker version
이 명령은 Docker 설치에 대한 많은 정보를 출력합니다. Client 및 Server와 같은 섹션을 찾으십시오. 이러한 섹션 내에서 다양한 구성 요소 및 모듈에 대한 세부 정보를 찾을 수 있습니다.
예를 들어, 출력은 다음과 유사할 수 있습니다 (정확한 출력은 Docker 버전 및 설치에 따라 다를 수 있음).
Client: Docker Engine - Community
Version: 20.10.21
API version: 1.41
Go version: go1.16.15
Git commit: f2213a1
Built: Thu Oct 27 00:18:36 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.21
API version: 1.41 (minimum version 1.12)
Go version: go1.16.15
Git commit: 3056e8c
Built: Thu Oct 27 00:17:23 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.8
GitCommit: 9cd358bba7fd9c7bb19904ba6d2f58fd60b1ca2b
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0
이 출력에서 Docker Engine, containerd, runc 및 docker-init 에 대한 정보를 볼 수 있습니다. 이것들은 Docker 환경을 구성하는 몇 가지 주요 모듈입니다. docker version 명령어는 Docker 설치의 다양한 구성 요소와 해당 버전을 이해하는 데 유용한 도구입니다.
JSON 형식으로 Docker Desktop 모듈 나열
이전 단계에서는 docker version 명령어를 사용하여 Docker Desktop 모듈을 나열했습니다. 기본 출력은 사람이 읽을 수 있지만, 스크립팅 또는 추가 처리를 위해 JSON 과 같은 구조화된 형식으로 출력이 필요한 경우가 있습니다.
docker version 명령어는 Go 의 text/template 패키지를 사용하여 출력 형식을 지정할 수 있는 --format 플래그를 지원합니다. JSON 형식으로 출력을 얻으려면 json . 템플릿을 사용할 수 있습니다.
터미널에서 다음 명령을 실행하십시오.
docker version --format '{{json .}}'
이 명령은 docker version과 동일한 정보를 JSON 객체로 형식화하여 출력합니다. {{json .}} 부분은 전체 출력 (.) 을 JSON 으로 형식화하도록 Docker 에 지시하는 템플릿입니다.
출력은 다음과 유사한 단일 JSON 데이터 줄이 됩니다 (가독성을 위해 형식화됨).
{
"Client": {
"Version": "20.10.21",
"ApiVersion": "1.41",
"GoVersion": "go1.16.15",
"GitCommit": "f2213a1",
"Built": "Thu Oct 27 00:18:36 2022",
"OsArch": "linux/amd64",
"Context": "default",
"Experimental": true
},
"Server": {
"Engine": {
"Version": "20.10.21",
"ApiVersion": "1.41",
"MinAPIVersion": "1.12",
"GoVersion": "go1.16.15",
"GitCommit": "3056e8c",
"Built": "Thu Oct 27 00:17:23 2022",
"OsArch": "linux/amd64",
"Experimental": false
},
"Containerd": {
"Version": "1.6.8",
"GitCommit": "9cd358bba7fd9c7bb19904ba6d2f58fd60b1ca2b"
},
"Runc": {
"Version": "1.1.4",
"GitCommit": "v1.1.4-0-g5fd4c4d"
},
"DockerInit": {
"Version": "0.19.0",
"GitCommit": "de40ad0"
}
}
}
이 JSON 출력은 기본 출력과 동일한 정보를 포함하지만 프로그램이 쉽게 구문 분석할 수 있는 구조화된 형식으로 제공됩니다. 이는 스크립트에서 docker version 출력에서 특정 정보 조각을 추출하려는 경우 특히 유용합니다.
Docker Desktop 모듈 ID 만 나열
이전 단계에서 모든 Docker Desktop 모듈을 나열하는 방법과 출력을 JSON 으로 형식화하는 방법을 배웠습니다. 이제 스크립팅 또는 자동화를 위해 특정 데이터 조각만 필요한 경우 모듈의 Git 커밋 ID 와 같은 특정 정보만 추출하는 방법을 살펴보겠습니다.
이를 위해 사용자 지정 템플릿과 함께 --format 플래그를 다시 사용할 수 있습니다. 이전 단계의 JSON 출력을 검사하여 Git 커밋 ID 가 Server.Engine.GitCommit, Server.Containerd.GitCommit, Server.Runc.GitCommit 및 Server.DockerInit.GitCommit 아래에 있음을 확인할 수 있습니다.
이러한 특정 필드를 추출하는 템플릿을 구성할 수 있습니다. 터미널에서 다음 명령을 실행하십시오.
docker version --format 'Engine GitCommit: {{.Server.Engine.GitCommit}}\nContainerd GitCommit: {{.Server.Containerd.GitCommit}}\nRunc GitCommit: {{.Server.Runc.GitCommit}}\nDockerInit GitCommit: {{.Server.DockerInit.GitCommit}}'
템플릿을 분석해 보겠습니다.
Engine GitCommit: {{.Server.Engine.GitCommit}}: 이 부분은Server객체 내의Engine객체에서GitCommit값을 추출합니다.\n: 각 모듈의 출력을 구분하기 위해 줄 바꿈 문자를 추가합니다.Containerd GitCommit: {{.Server.Containerd.GitCommit}}: containerd 에 대한GitCommit을 추출합니다.Runc GitCommit: {{.Server.Runc.GitCommit}}: runc 에 대한GitCommit을 추출합니다.DockerInit GitCommit: {{.Server.DockerInit.GitCommit}}: docker-init 에 대한GitCommit을 추출합니다.
출력은 다음과 유사하게 각 지정된 모듈에 대한 Git 커밋 ID 를 표시합니다.
Engine GitCommit: 3056e8c
Containerd GitCommit: 9cd358bba7fd9c7bb19904ba6d2f58fd60b1ca2b
Runc GitCommit: v1.1.4-0-g5fd4c4d
DockerInit GitCommit: de40ad0
이는 Docker 명령어에서 특정 데이터를 추출하기 위한 --format 플래그와 Go 템플릿의 강력함을 보여줍니다. docker version 출력에서 사용할 수 있는 모든 필드를 추출하도록 템플릿을 사용자 지정할 수 있습니다.
요약
이 랩에서는 docker version 명령어를 사용하여 Docker Desktop 모듈을 나열하는 방법을 배웠습니다. Docker Engine, containerd, runc 및 docker-init 과 해당 버전을 포함하여 Docker 설치의 다양한 구성 요소에 대한 귀중한 정보를 제공하는 모든 모듈과 세부 정보를 표시하는 방법을 살펴보았습니다.
또한 프로그래밍 방식으로 처리하고 다른 도구와 통합하는 데 유용한 JSON 형식으로 Docker Desktop 모듈을 나열하는 방법을 배웠습니다. 마지막으로, 빠른 식별을 위해 간결한 출력을 제공하는 Docker Desktop 모듈의 ID 만 나열하는 방법을 다루었습니다.



