{"id":24389,"date":"2024-04-24T08:43:38","date_gmt":"2024-04-24T06:43:38","guid":{"rendered":"https:\/\/daniel.haxx.se\/blog\/?p=24389"},"modified":"2024-04-24T08:43:38","modified_gmt":"2024-04-24T06:43:38","slug":"six-billion-docker-pulls","status":"publish","type":"post","link":"https:\/\/daniel.haxx.se\/blog\/2024\/04\/24\/six-billion-docker-pulls\/","title":{"rendered":"Six billion docker pulls"},"content":{"rendered":"\n<p>We provide an official <a href=\"https:\/\/github.com\/curl\/curl-container\">curl container<\/a>.<\/p>\n\n\n\n<p>Why would you use curl in a container? We actually don&#8217;t ask, we just provide the image, but I can think of a few reasons&#8230;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>it is an easy way to use a modern curl version in a system that otherwise ships an ancient version. So many people are stuck on legacy distros with ancient curl versions.<\/li>\n\n\n\n<li>it is an easy way to make use of a consistent fixed version from many places independently of what particular curl versions those systems otherwise can offer<\/li>\n\n\n\n<li>CI jobs<\/li>\n\n\n\n<li>other elaborate explanations<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Six billion as of now<\/h2>\n\n\n\n<p>The <a href=\"https:\/\/hub.docker.com\/r\/curlimages\/curl\">official curl docker repository<\/a> now (as of 06:43 UTC April 24, 2024) reports that the curl container has been pulled more than <strong>six billion times<\/strong>. Currently, people seem to be pulling the curl image from docker.com at a rate of 2-3 million pulls per day (about 25 per second).<\/p>\n\n\n\n<p>It shall be noted that a pull does not necessary imply a download. The pull is a a check and the client may already have the latest version downloaded. It is therefore <em>not<\/em> equal to six billion downloads.<\/p>\n\n\n\n<p>We started offering docker images to the world with curl 7.65.3, July 19 2019. Six billion pulls in 1832 days makes an average of 38 pulls\/second through all this time. Less than five years.<\/p>\n\n\n\n<p>How do I know the pull counter reached six billion? I asked their API:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">curl https:\/\/hub.docker.com\/v2\/repositories\/curlimages\/ -s | jq .results[0].pull_count<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Sponsored OSS<\/h2>\n\n\n\n<p>We do not pay Docker anything for this service of theirs. They also do not pay anything to us for our service. The <a href=\"https:\/\/www.docker.com\/community\/open-source\/application\/\">Docker Sponsored OSS program<\/a> lists conditions that might make us disqualified for being part of it, but as long as you don&#8217;t tell them I won&#8217;t. And hey, at least the first six billion pulls have been served.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Other repositories<\/h2>\n\n\n\n<p>You can also opt to pull the container from other repositories like quay and GitHub. I have not included their pull counters in this.<\/p>\n\n\n","protected":false},"excerpt":{"rendered":"<p>We provide an official curl container. Why would you use curl in a container? We actually don&#8217;t ask, we just provide the image, but I can think of a few reasons&#8230; Six billion as of now The official curl docker repository now (as of 06:43 UTC April 24, 2024) reports that the curl container has &hellip; <a href=\"https:\/\/daniel.haxx.se\/blog\/2024\/04\/24\/six-billion-docker-pulls\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Six billion docker pulls<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":5,"featured_media":24610,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[33],"class_list":["post-24389","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-curl","tag-curl-and-libcurl"],"_links":{"self":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/24389","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/comments?post=24389"}],"version-history":[{"count":23,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/24389\/revisions"}],"predecessor-version":[{"id":24650,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/24389\/revisions\/24650"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/media\/24610"}],"wp:attachment":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/media?parent=24389"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/categories?post=24389"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/tags?post=24389"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}