다음과 같이 Docker 웹사이트에서 사용 가능한 이미지 파일을 검색할 수 있습니다.
가져오기 전에 다운로드 크기가 무엇인지 어떻게 알 수 있나요?
docker.io pull [image]
답변1
Docker의 API를 확인하세요.도커 원격 API v1.10, 이미지의 크기를 얻을 수 있는 방법이 없는 것 같습니다. 섹션 "2.2 이미지"에서는 이미지 쿼리 방법에 대한 사양을 보여줍니다.
예
GET /images/json?all=0 HTTP/1.1
**Example response**:
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"RepoTags": [
"ubuntu:12.04",
"ubuntu:precise",
"ubuntu:latest"
],
"Id": "8dbd9e392a964056420e5d58ca5cc376ef18e2de93b5cc90e868a1bbc8318c1c",
"Created": 1365714795,
"Size": 131506275,
"VirtualSize": 131506275
},
{
"RepoTags": [
"ubuntu:12.10",
"ubuntu:quantal"
],
"ParentId": "27cf784147099545",
"Id": "b750fe79269d2ec9a3c593ef05b4332b1d1a02a62b4accb2c21d589ff2f5f2dc",
"Created": 1364102658,
"Size": 24653,
"VirtualSize": 180116135
}
]
하지만 이 쿼리는 실제 Docker 인스턴스에 대한 것이어야 합니다. 다음 예에서는 위의 RESTful 쿼리를 사용하는 방법을 보여줍니다.
$ echo -e "GET /images/json HTTP/1.0\r\n" | nc -U /var/run/docker.sock
HTTP/1.0 200 OK
Content-Type: application/json
Content-Length: 858
Connection: close
Date: Fri, 20 Dec 2013 16:02:41 GMT
[{"Repository":"ubuntu","Tag":"12.04","Id":"8dbd9e392...",
"Created":1365714795,"Size":131502179,"VirtualSize":131502179},
{"Repository":"ubuntu","Tag":"latest","Id":"8dbd9e392...",
"Created":1365714795,"Size":131502179,"VirtualSize":131502179},
{"Repository":"ubuntu","Tag":"precise","Id":"8dbd9e392...",
"Created":1365714795,"Size":131502179,"VirtualSize":131502179},
{"Repository":"ubuntu","Tag":"12.10","Id":"b750fe792...",
"Created":1364102658,"Size":24653,"VirtualSize":180116135},
{"Repository":"ubuntu","Tag":"quantal","Id":"b750fe792...",
"Created":1364102658,"Size":24653,"VirtualSize":180116135}]
이 특정 RESTful 호출을 사용하여 공개 저장소를 쿼리할 방법을 찾지 못했습니다. docker.io 이미지를 쿼리하는 유일한 RESTful 방법은 검색을 통한 것으로 보이지만 GET /images/search
API는 이에 대해 반환되는 크기 속성을 표시하지 않습니다.
인용하다
답변2
이는 귀하의 질문에 대한 직접적인 답변은 아니지만 여전히 도움이 되기를 바랍니다.
내부에디스크 사용량 스크립트 내도커 실험 나는 다음과 같은 것을 사용합니다 :
docker run --entrypoint=/bin/sh $image -c 'du -sh / 2>/dev/null | cut -f1'
예를 들어 다음과 같이 실행할 수 있습니다.
docker run --entrypoint=/bin/sh ubuntu -c 'du -sh / 2>/dev/null | cut -f1'
또는 다음 스크립트를 다운로드할 수 있습니다.디스크 사용량./disk-usage "ubuntu busybox gcc"
예를 들어 다음 3개 이미지의 디스크 사용량을 표시하려면 다음을 실행하세요 (보고됨 du -sh
).
Image Disk usage
----- ----------
ubuntu 209M
busybox 2.6M
gcc 1.5G
특정 이미지에 필요한 실제 다운로드를 표시하지 않고 이미지를 다운로드한 후 결과를 표시하지만, 해당 이미지가 다른 이미지와 비교하여 얼마나 부풀려졌는지에 대한 정보를 제공합니다.
한 컴퓨터에서 실행하여 이미지를 다른 컴퓨터에 다운로드할지 아니면 전혀 사용할지 결정할 수 있습니다.
답변3
나는 이것이 오래된 질문이라는 것을 알고 있지만 오늘(2020년 10월)부터 웹사이트에 이 정보가 표시됩니다. 라벨 탭을 클릭하면 압축된 크기가 표시됩니다.
도커 허브의 우분투 예https://hub.docker.com/_/ubuntu?tab=tags
답변4
- Docker Hub 이미지의 경우:
curl -s -H "Authorization: JWT " "https://hub.docker.com/v2/repositories/library/<image-name>/tags/?page_size=100" | jq -r '.results[] | select(.name == "<tag-name>") | .images[0].size' | numfmt --to=iec-i
Microsoft Container Registry와 같은 다른 레지스트리의 이미지의 경우. 저는 3가지 방법을 생각해냈습니다.
- 매니페스트 데이터를 관찰하는 데 사용되며
docker manifest inspect
, 이를 통해 이미지의 압축된 크기를 얻는 방법에 대한 아이디어를 얻을 수 있습니다.
docker manifest inspect -v <registry-domain>/<image-name> | grep size | awk -F ':' '{sum+=$NF} END {print sum}' | numfmt --to=iec-i
을 활성화하려면 파일을
docker manifest inspect
편집 하고 로 설정하십시오 . (인용하다:~/.docker/config.json
experimental
enable
도커 체크리스트 확인)이미지를 Docker Hub에 푸시하면 Docker Hub 웹사이트에서 이미지의 압축된 크기를 얻을 수 있습니다.
docker save
이미지를 .tar 파일에 저장한 다음 .tar.gz 파일로 압축하는 데 사용됩니다 .
- 매니페스트 데이터를 관찰하는 데 사용되며
docker save my-image:latest > my-image.tar
# Compress the .tar file
gzip my-image.tar
# Check the size of the compressed image
ls -lh my-image.tar.gz