How to determine Docker image size before being pulled? The 2019 Stack Overflow Developer Survey Results Are InHow can I remove a stubborn docker image?inconsistent Docker imageGPG Key Generation Fails on Alpine Linux Docker ImageNslookup doesn't show full info on CentOS 7 docker imageHow to commit a docker image to another hub directory?How do I change the Docker image installation directory?How to migrate a Docker image with all its parent layers to another machine?When uname reports aarch64 instead of arm64v8. Willl docker-ce still pull arm64v8 imagesdocker unable to run golang imageWhen choosing a Docker container image file for my Ubuntu, what do I need to match between them?
How do PCB vias affect signal quality?
writing variables above the numbers in tikz picture
Worn-tile Scrabble
Is bread bad for ducks?
How come people say “Would of”?
Is it safe to harvest rainwater that fell on solar panels?
Kerning for subscripts of sigma?
Did the UK government pay "millions and millions of dollars" to try to snag Julian Assange?
Ubuntu Server install with full GUI
How to support a colleague who finds meetings extremely tiring?
Cooking pasta in a water boiler
Getting crown tickets for Statue of Liberty
Why was M87 targeted for the Event Horizon Telescope instead of Sagittarius A*?
Can withdrawing asylum be illegal?
How can I add encounters in the Lost Mine of Phandelver campaign without giving PCs too much XP?
How do I free up internal storage if I don't have any apps downloaded?
Why don't hard Brexiteers insist on a hard border to prevent illegal immigration after Brexit?
Is it okay to consider publishing in my first year of PhD?
How to obtain a position of last non-zero element
What do I do when my TA workload is more than expected?
What do these terms in Caesar's Gallic Wars mean?
Why are there uneven bright areas in this photo of black hole?
How did passengers keep warm on sail ships?
Why doesn't UInt have a toDouble()?
How to determine Docker image size before being pulled?
The 2019 Stack Overflow Developer Survey Results Are InHow can I remove a stubborn docker image?inconsistent Docker imageGPG Key Generation Fails on Alpine Linux Docker ImageNslookup doesn't show full info on CentOS 7 docker imageHow to commit a docker image to another hub directory?How do I change the Docker image installation directory?How to migrate a Docker image with all its parent layers to another machine?When uname reports aarch64 instead of arm64v8. Willl docker-ce still pull arm64v8 imagesdocker unable to run golang imageWhen choosing a Docker container image file for my Ubuntu, what do I need to match between them?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
We can search for available image files on the docker website like this:
- https://index.docker.io/search?q=ubuntu
How can I tell what the download size(s) will be prior to pulling?
docker.io pull [image]
docker
add a comment |
We can search for available image files on the docker website like this:
- https://index.docker.io/search?q=ubuntu
How can I tell what the download size(s) will be prior to pulling?
docker.io pull [image]
docker
1
Not a general answer, but looking at the way the stackbrew ubuntu images are built, you can guess a lower bound to the image size from the used tarballs. (For predictable bandwidth usage, you might just build the images yourself -- you'd then know how much is downloaded, i.e. just the tarball itself.)
– sr_
Jun 3 '14 at 6:58
add a comment |
We can search for available image files on the docker website like this:
- https://index.docker.io/search?q=ubuntu
How can I tell what the download size(s) will be prior to pulling?
docker.io pull [image]
docker
We can search for available image files on the docker website like this:
- https://index.docker.io/search?q=ubuntu
How can I tell what the download size(s) will be prior to pulling?
docker.io pull [image]
docker
docker
edited Jan 14 '18 at 17:57
Chris Stryczynski
669620
669620
asked Jun 3 '14 at 1:58
SeperoSepero
59931226
59931226
1
Not a general answer, but looking at the way the stackbrew ubuntu images are built, you can guess a lower bound to the image size from the used tarballs. (For predictable bandwidth usage, you might just build the images yourself -- you'd then know how much is downloaded, i.e. just the tarball itself.)
– sr_
Jun 3 '14 at 6:58
add a comment |
1
Not a general answer, but looking at the way the stackbrew ubuntu images are built, you can guess a lower bound to the image size from the used tarballs. (For predictable bandwidth usage, you might just build the images yourself -- you'd then know how much is downloaded, i.e. just the tarball itself.)
– sr_
Jun 3 '14 at 6:58
1
1
Not a general answer, but looking at the way the stackbrew ubuntu images are built, you can guess a lower bound to the image size from the used tarballs. (For predictable bandwidth usage, you might just build the images yourself -- you'd then know how much is downloaded, i.e. just the tarball itself.)
– sr_
Jun 3 '14 at 6:58
Not a general answer, but looking at the way the stackbrew ubuntu images are built, you can guess a lower bound to the image size from the used tarballs. (For predictable bandwidth usage, you might just build the images yourself -- you'd then know how much is downloaded, i.e. just the tarball itself.)
– sr_
Jun 3 '14 at 6:58
add a comment |
5 Answers
5
active
oldest
votes
Looking at the API for Docker, Docker Remote API v1.10, it doesn't appear there is any way to get the sizes of the images. Section "2.2 Images" shows the spec for how to query about images.
Example
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
]
But this query needs to go against an actual Docker instance. Here's an example showing how one could use the above RESTful query:
$ echo -e "GET /images/json HTTP/1.0rn" | 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]
I saw no way to query the public repositories using this particular RESTful call. The only other RESTful method that looked like you could query docker.io's images was via search, GET /images/search
, but the API doesn't show any size attributes being returned for this.
References
- DOCKER FROM A DISTANCE - THE REMOTE API
Thanks for the insights! Hopefully the docker team will start making this info available viadocker search
– Sepero
Jun 3 '14 at 7:20
@Sepero - yes I'm sure over time things such as this will get added. If this A has resolved your Q's please mark it as accepted so other's know your issue's have been resolved too.
– slm♦
Jun 3 '14 at 11:16
Awesome, exactly what I needed!
– Brady Dowling
Aug 16 '17 at 17:38
add a comment |
This is not a direct answer to your question but I hope it will be helpful nonetheless.
In the disk-usage script
in my Docker experiments
I use something like this:
docker run --entrypoint=/bin/sh $image -c 'du -sh / 2>/dev/null | cut -f1'
So you can run, e.g.:
docker run --entrypoint=/bin/sh ubuntu -c 'du -sh / 2>/dev/null | cut -f1'
Or you can download that script: disk-usage
and run e.g. ./disk-usage "ubuntu busybox gcc"
to have the disk usage (as reported by du -sh
) displayed for those 3 images:
Image Disk usage
----- ----------
ubuntu 209M
busybox 2.6M
gcc 1.5G
Please note that it doesn't show the actual download required for any given image, and it will display the result after downloading the image, but it gives some idea on how bloated is a given image as compared to others.
You can run it on one machine to decide whether you want to download that images on other machines, or to use it at all.
add a comment |
If you really look into the docker code for pull operation, I think your answer is there. If the image of the container is not cached, then during pulling of the image, docker first collects the information about the image from the registry like number of layers, size of each layers etc. etc.
I would refer to read this file.
https://github.com/moxiegirl/docker/blob/master/distribution/xfer/download.go
add a comment |
- For image on 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
For image on other registry like Microsoft Container Registry. I figure out 3 ways.
- Use
docker manifest inspect
to observe the manifest data, which can give you idea on how to gain the compressed size of the image.
docker manifest inspect -v <registry-domain>/<image-name> | grep size | awk -F ':' 'sum+=$NF END print sum' | numfmt --to=iec-i
To enable
docker manifest inspect
, edit~/.docker/config.json
file and setexperimental
toenable
.(Reference: docker manifest inspect)Push the image to Docker Hub and you can get the compressed size of the image on Docker Hub website.
Use
docker save
to save image to a .tar file and then compress it a .tar.gz file.
- Use
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
add a comment |
For HTTP API v2, the size is available via the tags resource under size
and full_size
. Here's an example URL from one of my repo's tags:
https://cloud.docker.com/v2/repositories/deepdriveio/deepdrive/tags/?page_size=25&page=1
New contributor
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f134186%2fhow-to-determine-docker-image-size-before-being-pulled%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
5 Answers
5
active
oldest
votes
5 Answers
5
active
oldest
votes
active
oldest
votes
active
oldest
votes
Looking at the API for Docker, Docker Remote API v1.10, it doesn't appear there is any way to get the sizes of the images. Section "2.2 Images" shows the spec for how to query about images.
Example
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
]
But this query needs to go against an actual Docker instance. Here's an example showing how one could use the above RESTful query:
$ echo -e "GET /images/json HTTP/1.0rn" | 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]
I saw no way to query the public repositories using this particular RESTful call. The only other RESTful method that looked like you could query docker.io's images was via search, GET /images/search
, but the API doesn't show any size attributes being returned for this.
References
- DOCKER FROM A DISTANCE - THE REMOTE API
Thanks for the insights! Hopefully the docker team will start making this info available viadocker search
– Sepero
Jun 3 '14 at 7:20
@Sepero - yes I'm sure over time things such as this will get added. If this A has resolved your Q's please mark it as accepted so other's know your issue's have been resolved too.
– slm♦
Jun 3 '14 at 11:16
Awesome, exactly what I needed!
– Brady Dowling
Aug 16 '17 at 17:38
add a comment |
Looking at the API for Docker, Docker Remote API v1.10, it doesn't appear there is any way to get the sizes of the images. Section "2.2 Images" shows the spec for how to query about images.
Example
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
]
But this query needs to go against an actual Docker instance. Here's an example showing how one could use the above RESTful query:
$ echo -e "GET /images/json HTTP/1.0rn" | 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]
I saw no way to query the public repositories using this particular RESTful call. The only other RESTful method that looked like you could query docker.io's images was via search, GET /images/search
, but the API doesn't show any size attributes being returned for this.
References
- DOCKER FROM A DISTANCE - THE REMOTE API
Thanks for the insights! Hopefully the docker team will start making this info available viadocker search
– Sepero
Jun 3 '14 at 7:20
@Sepero - yes I'm sure over time things such as this will get added. If this A has resolved your Q's please mark it as accepted so other's know your issue's have been resolved too.
– slm♦
Jun 3 '14 at 11:16
Awesome, exactly what I needed!
– Brady Dowling
Aug 16 '17 at 17:38
add a comment |
Looking at the API for Docker, Docker Remote API v1.10, it doesn't appear there is any way to get the sizes of the images. Section "2.2 Images" shows the spec for how to query about images.
Example
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
]
But this query needs to go against an actual Docker instance. Here's an example showing how one could use the above RESTful query:
$ echo -e "GET /images/json HTTP/1.0rn" | 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]
I saw no way to query the public repositories using this particular RESTful call. The only other RESTful method that looked like you could query docker.io's images was via search, GET /images/search
, but the API doesn't show any size attributes being returned for this.
References
- DOCKER FROM A DISTANCE - THE REMOTE API
Looking at the API for Docker, Docker Remote API v1.10, it doesn't appear there is any way to get the sizes of the images. Section "2.2 Images" shows the spec for how to query about images.
Example
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
]
But this query needs to go against an actual Docker instance. Here's an example showing how one could use the above RESTful query:
$ echo -e "GET /images/json HTTP/1.0rn" | 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]
I saw no way to query the public repositories using this particular RESTful call. The only other RESTful method that looked like you could query docker.io's images was via search, GET /images/search
, but the API doesn't show any size attributes being returned for this.
References
- DOCKER FROM A DISTANCE - THE REMOTE API
answered Jun 3 '14 at 6:20
slm♦slm
256k71544689
256k71544689
Thanks for the insights! Hopefully the docker team will start making this info available viadocker search
– Sepero
Jun 3 '14 at 7:20
@Sepero - yes I'm sure over time things such as this will get added. If this A has resolved your Q's please mark it as accepted so other's know your issue's have been resolved too.
– slm♦
Jun 3 '14 at 11:16
Awesome, exactly what I needed!
– Brady Dowling
Aug 16 '17 at 17:38
add a comment |
Thanks for the insights! Hopefully the docker team will start making this info available viadocker search
– Sepero
Jun 3 '14 at 7:20
@Sepero - yes I'm sure over time things such as this will get added. If this A has resolved your Q's please mark it as accepted so other's know your issue's have been resolved too.
– slm♦
Jun 3 '14 at 11:16
Awesome, exactly what I needed!
– Brady Dowling
Aug 16 '17 at 17:38
Thanks for the insights! Hopefully the docker team will start making this info available via
docker search
– Sepero
Jun 3 '14 at 7:20
Thanks for the insights! Hopefully the docker team will start making this info available via
docker search
– Sepero
Jun 3 '14 at 7:20
@Sepero - yes I'm sure over time things such as this will get added. If this A has resolved your Q's please mark it as accepted so other's know your issue's have been resolved too.
– slm♦
Jun 3 '14 at 11:16
@Sepero - yes I'm sure over time things such as this will get added. If this A has resolved your Q's please mark it as accepted so other's know your issue's have been resolved too.
– slm♦
Jun 3 '14 at 11:16
Awesome, exactly what I needed!
– Brady Dowling
Aug 16 '17 at 17:38
Awesome, exactly what I needed!
– Brady Dowling
Aug 16 '17 at 17:38
add a comment |
This is not a direct answer to your question but I hope it will be helpful nonetheless.
In the disk-usage script
in my Docker experiments
I use something like this:
docker run --entrypoint=/bin/sh $image -c 'du -sh / 2>/dev/null | cut -f1'
So you can run, e.g.:
docker run --entrypoint=/bin/sh ubuntu -c 'du -sh / 2>/dev/null | cut -f1'
Or you can download that script: disk-usage
and run e.g. ./disk-usage "ubuntu busybox gcc"
to have the disk usage (as reported by du -sh
) displayed for those 3 images:
Image Disk usage
----- ----------
ubuntu 209M
busybox 2.6M
gcc 1.5G
Please note that it doesn't show the actual download required for any given image, and it will display the result after downloading the image, but it gives some idea on how bloated is a given image as compared to others.
You can run it on one machine to decide whether you want to download that images on other machines, or to use it at all.
add a comment |
This is not a direct answer to your question but I hope it will be helpful nonetheless.
In the disk-usage script
in my Docker experiments
I use something like this:
docker run --entrypoint=/bin/sh $image -c 'du -sh / 2>/dev/null | cut -f1'
So you can run, e.g.:
docker run --entrypoint=/bin/sh ubuntu -c 'du -sh / 2>/dev/null | cut -f1'
Or you can download that script: disk-usage
and run e.g. ./disk-usage "ubuntu busybox gcc"
to have the disk usage (as reported by du -sh
) displayed for those 3 images:
Image Disk usage
----- ----------
ubuntu 209M
busybox 2.6M
gcc 1.5G
Please note that it doesn't show the actual download required for any given image, and it will display the result after downloading the image, but it gives some idea on how bloated is a given image as compared to others.
You can run it on one machine to decide whether you want to download that images on other machines, or to use it at all.
add a comment |
This is not a direct answer to your question but I hope it will be helpful nonetheless.
In the disk-usage script
in my Docker experiments
I use something like this:
docker run --entrypoint=/bin/sh $image -c 'du -sh / 2>/dev/null | cut -f1'
So you can run, e.g.:
docker run --entrypoint=/bin/sh ubuntu -c 'du -sh / 2>/dev/null | cut -f1'
Or you can download that script: disk-usage
and run e.g. ./disk-usage "ubuntu busybox gcc"
to have the disk usage (as reported by du -sh
) displayed for those 3 images:
Image Disk usage
----- ----------
ubuntu 209M
busybox 2.6M
gcc 1.5G
Please note that it doesn't show the actual download required for any given image, and it will display the result after downloading the image, but it gives some idea on how bloated is a given image as compared to others.
You can run it on one machine to decide whether you want to download that images on other machines, or to use it at all.
This is not a direct answer to your question but I hope it will be helpful nonetheless.
In the disk-usage script
in my Docker experiments
I use something like this:
docker run --entrypoint=/bin/sh $image -c 'du -sh / 2>/dev/null | cut -f1'
So you can run, e.g.:
docker run --entrypoint=/bin/sh ubuntu -c 'du -sh / 2>/dev/null | cut -f1'
Or you can download that script: disk-usage
and run e.g. ./disk-usage "ubuntu busybox gcc"
to have the disk usage (as reported by du -sh
) displayed for those 3 images:
Image Disk usage
----- ----------
ubuntu 209M
busybox 2.6M
gcc 1.5G
Please note that it doesn't show the actual download required for any given image, and it will display the result after downloading the image, but it gives some idea on how bloated is a given image as compared to others.
You can run it on one machine to decide whether you want to download that images on other machines, or to use it at all.
answered Mar 7 '15 at 3:17
rsprsp
2,5581147
2,5581147
add a comment |
add a comment |
If you really look into the docker code for pull operation, I think your answer is there. If the image of the container is not cached, then during pulling of the image, docker first collects the information about the image from the registry like number of layers, size of each layers etc. etc.
I would refer to read this file.
https://github.com/moxiegirl/docker/blob/master/distribution/xfer/download.go
add a comment |
If you really look into the docker code for pull operation, I think your answer is there. If the image of the container is not cached, then during pulling of the image, docker first collects the information about the image from the registry like number of layers, size of each layers etc. etc.
I would refer to read this file.
https://github.com/moxiegirl/docker/blob/master/distribution/xfer/download.go
add a comment |
If you really look into the docker code for pull operation, I think your answer is there. If the image of the container is not cached, then during pulling of the image, docker first collects the information about the image from the registry like number of layers, size of each layers etc. etc.
I would refer to read this file.
https://github.com/moxiegirl/docker/blob/master/distribution/xfer/download.go
If you really look into the docker code for pull operation, I think your answer is there. If the image of the container is not cached, then during pulling of the image, docker first collects the information about the image from the registry like number of layers, size of each layers etc. etc.
I would refer to read this file.
https://github.com/moxiegirl/docker/blob/master/distribution/xfer/download.go
answered Jun 22 '17 at 7:28
Arif A.Arif A.
1214
1214
add a comment |
add a comment |
- For image on 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
For image on other registry like Microsoft Container Registry. I figure out 3 ways.
- Use
docker manifest inspect
to observe the manifest data, which can give you idea on how to gain the compressed size of the image.
docker manifest inspect -v <registry-domain>/<image-name> | grep size | awk -F ':' 'sum+=$NF END print sum' | numfmt --to=iec-i
To enable
docker manifest inspect
, edit~/.docker/config.json
file and setexperimental
toenable
.(Reference: docker manifest inspect)Push the image to Docker Hub and you can get the compressed size of the image on Docker Hub website.
Use
docker save
to save image to a .tar file and then compress it a .tar.gz file.
- Use
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
add a comment |
- For image on 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
For image on other registry like Microsoft Container Registry. I figure out 3 ways.
- Use
docker manifest inspect
to observe the manifest data, which can give you idea on how to gain the compressed size of the image.
docker manifest inspect -v <registry-domain>/<image-name> | grep size | awk -F ':' 'sum+=$NF END print sum' | numfmt --to=iec-i
To enable
docker manifest inspect
, edit~/.docker/config.json
file and setexperimental
toenable
.(Reference: docker manifest inspect)Push the image to Docker Hub and you can get the compressed size of the image on Docker Hub website.
Use
docker save
to save image to a .tar file and then compress it a .tar.gz file.
- Use
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
add a comment |
- For image on 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
For image on other registry like Microsoft Container Registry. I figure out 3 ways.
- Use
docker manifest inspect
to observe the manifest data, which can give you idea on how to gain the compressed size of the image.
docker manifest inspect -v <registry-domain>/<image-name> | grep size | awk -F ':' 'sum+=$NF END print sum' | numfmt --to=iec-i
To enable
docker manifest inspect
, edit~/.docker/config.json
file and setexperimental
toenable
.(Reference: docker manifest inspect)Push the image to Docker Hub and you can get the compressed size of the image on Docker Hub website.
Use
docker save
to save image to a .tar file and then compress it a .tar.gz file.
- Use
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
- For image on 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
For image on other registry like Microsoft Container Registry. I figure out 3 ways.
- Use
docker manifest inspect
to observe the manifest data, which can give you idea on how to gain the compressed size of the image.
docker manifest inspect -v <registry-domain>/<image-name> | grep size | awk -F ':' 'sum+=$NF END print sum' | numfmt --to=iec-i
To enable
docker manifest inspect
, edit~/.docker/config.json
file and setexperimental
toenable
.(Reference: docker manifest inspect)Push the image to Docker Hub and you can get the compressed size of the image on Docker Hub website.
Use
docker save
to save image to a .tar file and then compress it a .tar.gz file.
- Use
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
answered Mar 14 at 6:31
Di LinDi Lin
1
1
add a comment |
add a comment |
For HTTP API v2, the size is available via the tags resource under size
and full_size
. Here's an example URL from one of my repo's tags:
https://cloud.docker.com/v2/repositories/deepdriveio/deepdrive/tags/?page_size=25&page=1
New contributor
add a comment |
For HTTP API v2, the size is available via the tags resource under size
and full_size
. Here's an example URL from one of my repo's tags:
https://cloud.docker.com/v2/repositories/deepdriveio/deepdrive/tags/?page_size=25&page=1
New contributor
add a comment |
For HTTP API v2, the size is available via the tags resource under size
and full_size
. Here's an example URL from one of my repo's tags:
https://cloud.docker.com/v2/repositories/deepdriveio/deepdrive/tags/?page_size=25&page=1
New contributor
For HTTP API v2, the size is available via the tags resource under size
and full_size
. Here's an example URL from one of my repo's tags:
https://cloud.docker.com/v2/repositories/deepdriveio/deepdrive/tags/?page_size=25&page=1
New contributor
New contributor
answered 2 days ago
crizCraigcrizCraig
1034
1034
New contributor
New contributor
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f134186%2fhow-to-determine-docker-image-size-before-being-pulled%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
-docker
1
Not a general answer, but looking at the way the stackbrew ubuntu images are built, you can guess a lower bound to the image size from the used tarballs. (For predictable bandwidth usage, you might just build the images yourself -- you'd then know how much is downloaded, i.e. just the tarball itself.)
– sr_
Jun 3 '14 at 6:58