카테고리 없음

각 Docker 이미지의 계층과 계층 크기 찾기

스택큐힙리스트 2023. 11. 30. 00:26
반응형

연구 목적으로 공개된 Docker 레지스트리(https://registry.hub.docker.com/)를 크롤링하여 다음 정보를 파악하려고 합니다. 1) 평균 이미지가 가지는 레이어 수 및 2) 이러한 레이어의 크기를 통해 분포를 파악하려고 합니다.

그러나 API 및 공개 라이브러리, 그리고 GitHub의 자세한 내용을 공부했지만 다음과 같은 방법을 찾을 수 없습니다:

 

    • 모든 공개 리포지토리/이미지(수천 개라도 시작할 수 있는 목록이 필요합니다)

 

    • 이미지의 모든 레이어 찾기

 

    • 레이어의 크기 찾기(이미지가 아닌 개별 레이어의 크기)

 

어떤 분이 이 정보를 가져오는 방법을 알려주실 수 있을까요?

편집: 도커 레지스트리에서 '*'을 검색하면 모든 저장소를 반환하는 것이 아니라 '*'이 어디에 있든지에 관계없이 어떤 것이든 언급하는 것이 맞는지 확인할 수 있는 사람이 있나요? https://registry.hub.docker.com/search?q=\*

답변 1

dive written in golang을 확인해보세요.

멋진 도구입니다!

답변 2

도커 이미지의 각 계층과 계층 크기를 찾는 방법에 대해 알아보겠습니다. 도커 이미지는 컨테이너화된 응용 프로그램을 구축하는 데 사용되는 가상화 기술입니다. 이러한 이미지는 여러 개의 계층으로 구성되어 있으며, 각 계층은 응용 프로그램의 다른 요소를 제공하고 관리합니다.
일반적으로 도커 이미지의 계층은 응용 프로그램의 종속성 및 구성 요소를 포함하며 이를 통해 이미지의 크기를 줄일 수 있습니다. 도커 이미지의 계층은 수정할 수 없으므로 응용 프로그램을 업데이트하는 경우 새로운 이미지를 만들어야 합니다. 예를 들어, 웹 응용 프로그램을 구축하는 경우, 이미지는 웹 서버, 데이터베이스 및 기타 종속 항목과 같은 여러 계층으로 구성됩니다.
각 계층의 크기를 찾기 위해 도커 CLI(Command Line Interface)를 사용할 수 있습니다. 다음 명령을 사용하여 도커 이미지의 계층을 확인할 수 있습니다:
```
docker image inspect

<이미지 이름 또는 id> --format='{{json .RootFS.Layers}}'
```
이 명령은 JSON 형식으로 계층 목록을 반환합니다. 각 계층은 해시 값으로 식별됩니다. 이를 통해 이미지의 계층 크기를 확인할 수 있습니다.
도커 이미지의 계층은 기본적으로 읽기 전용입니다. 이미지를 구축하는 동안 계층을 캐싱하여 빌드 속도를 높일 수 있습니다. 응용 프로그램 또는 이미지의 종속성이 변경되는 경우 해당 계층만 다시 빌드하여 전체 이미지를 재빌드하는 필요성을 줄일 수 있습니다.
각 도커 이미지는 이전 계층의 변경 사항만 저장하므로 다른 이미지에 속한 동일한 계층이 공유될 수 있습니다. 이는 도커 이미지의 크기를 크게 줄일 수 있는 이점을 제공합니다.
이러한 방식으로 Docker 이미지의 계층과 계층 크기를 찾을 수 있습니다. 이는 이미지의 구조와 크기를 관리하는 데 도움이 되며, 응용 프로그램을 개발하고 배포하는 데 필요한 시간과 자원을 절약할 수 있습니다.
</이미지>

반응형