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;








32















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]









share|improve this question



















  • 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


















32















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]









share|improve this question



















  • 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














32












32








32


4






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]









share|improve this question
















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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








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













  • 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











5 Answers
5






active

oldest

votes


















14














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





share|improve this answer























  • 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











  • Awesome, exactly what I needed!

    – Brady Dowling
    Aug 16 '17 at 17:38


















7














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.






share|improve this answer






























    1














    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






    share|improve this answer






























      0














      1. 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



      1. 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 set experimental to enable.(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.



      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





      share|improve this answer






























        0














        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






        share|improve this answer








        New contributor




        crizCraig is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
        Check out our Code of Conduct.




















          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
          );



          );













          draft saved

          draft discarded


















          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









          14














          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





          share|improve this answer























          • 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











          • Awesome, exactly what I needed!

            – Brady Dowling
            Aug 16 '17 at 17:38















          14














          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





          share|improve this answer























          • 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











          • Awesome, exactly what I needed!

            – Brady Dowling
            Aug 16 '17 at 17:38













          14












          14








          14







          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





          share|improve this answer













          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






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Jun 3 '14 at 6:20









          slmslm

          256k71544689




          256k71544689












          • 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











          • 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












          • @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













          7














          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.






          share|improve this answer



























            7














            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.






            share|improve this answer

























              7












              7








              7







              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.






              share|improve this answer













              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.







              share|improve this answer












              share|improve this answer



              share|improve this answer










              answered Mar 7 '15 at 3:17









              rsprsp

              2,5581147




              2,5581147





















                  1














                  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






                  share|improve this answer



























                    1














                    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






                    share|improve this answer

























                      1












                      1








                      1







                      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






                      share|improve this answer













                      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







                      share|improve this answer












                      share|improve this answer



                      share|improve this answer










                      answered Jun 22 '17 at 7:28









                      Arif A.Arif A.

                      1214




                      1214





















                          0














                          1. 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



                          1. 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 set experimental to enable.(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.



                          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





                          share|improve this answer



























                            0














                            1. 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



                            1. 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 set experimental to enable.(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.



                            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





                            share|improve this answer

























                              0












                              0








                              0







                              1. 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



                              1. 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 set experimental to enable.(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.



                              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





                              share|improve this answer













                              1. 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



                              1. 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 set experimental to enable.(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.



                              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






                              share|improve this answer












                              share|improve this answer



                              share|improve this answer










                              answered Mar 14 at 6:31









                              Di LinDi Lin

                              1




                              1





















                                  0














                                  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






                                  share|improve this answer








                                  New contributor




                                  crizCraig is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                  Check out our Code of Conduct.
























                                    0














                                    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






                                    share|improve this answer








                                    New contributor




                                    crizCraig is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                    Check out our Code of Conduct.






















                                      0












                                      0








                                      0







                                      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






                                      share|improve this answer








                                      New contributor




                                      crizCraig is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                      Check out our Code of Conduct.










                                      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







                                      share|improve this answer








                                      New contributor




                                      crizCraig is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                      Check out our Code of Conduct.









                                      share|improve this answer



                                      share|improve this answer






                                      New contributor




                                      crizCraig is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                      Check out our Code of Conduct.









                                      answered 2 days ago









                                      crizCraigcrizCraig

                                      1034




                                      1034




                                      New contributor




                                      crizCraig is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                      Check out our Code of Conduct.





                                      New contributor





                                      crizCraig is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                      Check out our Code of Conduct.






                                      crizCraig is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                      Check out our Code of Conduct.



























                                          draft saved

                                          draft discarded
















































                                          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.




                                          draft saved


                                          draft discarded














                                          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





















































                                          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

                                          Popular posts from this blog

                                          Frič See also Navigation menuinternal link

                                          Identify plant with long narrow paired leaves and reddish stems Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?What is this plant with long sharp leaves? Is it a weed?What is this 3ft high, stalky plant, with mid sized narrow leaves?What is this young shrub with opposite ovate, crenate leaves and reddish stems?What is this plant with large broad serrated leaves?Identify this upright branching weed with long leaves and reddish stemsPlease help me identify this bulbous plant with long, broad leaves and white flowersWhat is this small annual with narrow gray/green leaves and rust colored daisy-type flowers?What is this chilli plant?Does anyone know what type of chilli plant this is?Help identify this plant

                                          fontconfig warning: “/etc/fonts/fonts.conf”, line 100: unknown “element blank” The 2019 Stack Overflow Developer Survey Results Are In“tar: unrecognized option --warning” during 'apt-get install'How to fix Fontconfig errorHow do I figure out which font file is chosen for a system generic font alias?Why are some apt-get-installed fonts being ignored by fc-list, xfontsel, etc?Reload settings in /etc/fonts/conf.dTaking 30 seconds longer to boot after upgrade from jessie to stretchHow to match multiple font names with a single <match> element?Adding a custom font to fontconfigRemoving fonts from fontconfig <match> resultsBroken fonts after upgrading Firefox ESR to latest Firefox