টানার আগে ডকার চিত্রের আকারটি কীভাবে নির্ধারণ করবেন?


35

আমরা এই জাতীয় ডকার ওয়েবসাইটে উপলভ্য চিত্র ফাইলগুলি অনুসন্ধান করতে পারি:

ডাউনলোডের আকার টানার আগে কী হবে তা আমি কীভাবে বলতে পারি?

docker.io pull [image]

1
কোনও সাধারণ উত্তর নয়, তবে স্ট্যাকব্রু উবুন্টু চিত্রগুলি যেভাবে তৈরি করা হয়েছে তা দেখে আপনি ব্যবহৃত টার্বলগুলি থেকে চিত্রের আকারের নীচে একটি আবদ্ধ অনুমান করতে পারেন । (পূর্বাভাসযোগ্য ব্যান্ডউইথের ব্যবহারের জন্য, আপনি কেবল চিত্রগুলি নিজেই তৈরি করতে পারেন - আপনি তখন কতটা ডাউনলোড করেছেন তা বুঝতে পারবেন, যেমন কেবল
তারবাল

উত্তর:


14

ডকার, ডকার রিমোট এপিআই v1.10 এর জন্য এপিআইয়ের দিকে তাকালে চিত্রের আকারগুলি পাওয়ার কোনও উপায় আছে বলে মনে হয় না। বিভাগ "২.২ ইমেজ" চিত্রগুলি সম্পর্কে কীভাবে জিজ্ঞাসা করবেন সে সম্পর্কে নির্দিষ্ট বৈশিষ্ট্য দেখায়।

উদাহরণ

    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
      }
    ]

তবে এই ক্যোয়ারিতে একটি আসল ডকার উদাহরণের বিরুদ্ধে যাওয়া দরকার। কেউ কীভাবে উপরের রেস্টস্টুল ক্যোরি ব্যবহার করতে পারে তা দেখানোর উদাহরণ এখানে দেওয়া হয়েছে:

$ echo -e "GET /images/json HTTP/1.0\r\n" | nc -U /var/run/docker.sock
HTTP/1.0 200 OK
Content-Type: application/json
Content-Length: 858
Connection: close
Date: Fri, 20 Dec 2013 16:02:41 GMT

[{"Repository":"ubuntu","Tag":"12.04","Id":"8dbd9e392...",
"Created":1365714795,"Size":131502179,"VirtualSize":131502179},
{"Repository":"ubuntu","Tag":"latest","Id":"8dbd9e392...",
"Created":1365714795,"Size":131502179,"VirtualSize":131502179},
{"Repository":"ubuntu","Tag":"precise","Id":"8dbd9e392...",
"Created":1365714795,"Size":131502179,"VirtualSize":131502179},
{"Repository":"ubuntu","Tag":"12.10","Id":"b750fe792...",
"Created":1364102658,"Size":24653,"VirtualSize":180116135},
{"Repository":"ubuntu","Tag":"quantal","Id":"b750fe792...",
"Created":1364102658,"Size":24653,"VirtualSize":180116135}]

এই বিশেষ RESTful কলটি ব্যবহার করে আমি পাবলিক ভান্ডারগুলি জিজ্ঞাসা করার কোনও উপায় দেখিনি। কেবলমাত্র আরএসইএসএফুল পদ্ধতি যা দেখে মনে হয়েছিল যে আপনি ডকার.ওয়ের চিত্র অনুসন্ধান করতে পেরেছিলেন GET /images/searchতবে এপিআই এর জন্য কোনও আকারের বৈশিষ্ট্য দেখায় না।

রেফারেন্স


অন্তর্দৃষ্টি জন্য ধন্যবাদ! আশা রাখি, Docker দলের মাধ্যমে এই তথ্য উপলব্ধ তৈরীর শুরু হবেdocker search
Sepero

@ সেপিরো - হ্যাঁ আমি নিশ্চিত যে সময়ের সাথে সাথে এর মতো জিনিস যুক্ত হবে। যদি এটি A আপনার Q এর সমাধান করে থাকে তবে দয়া করে এটি স্বীকৃত হিসাবে চিহ্নিত করুন যাতে আপনার সমস্যাটিও সমাধান হয়ে গেছে অন্যরা জানেন।
slm

আশ্চর্যজনক, আমার ঠিক কী প্রয়োজন!
ব্র্যাডি

7

এটি আপনার প্রশ্নের সরাসরি উত্তর নয় তবে আমি আশা করি এটি তবুও সহায়ক হবে।

ইন ডিস্ক ব্যবহার স্ক্রিপ্ট আমার মধ্যে Docker পরীক্ষায় আমি ভালো কিছু ব্যবহার করুন:

docker run --entrypoint=/bin/sh $image -c 'du -sh / 2>/dev/null | cut -f1'

সুতরাং আপনি চালাতে পারেন, যেমন:

docker run --entrypoint=/bin/sh ubuntu -c 'du -sh / 2>/dev/null | cut -f1'

বা আপনি এই স্ক্রিপ্টটি ডাউনলোড করতে পারেন: ডিস্ক-ব্যবহার এবং চালাতে উদাহরণস্বরূপ সেই 3 টি চিত্রের জন্য ./disk-usage "ubuntu busybox gcc"ডিস্কের ব্যবহার (যেমন রিপোর্ট করেছেন du -sh) প্রদর্শিত হবে:

Image   Disk usage
-----   ----------
ubuntu  209M
busybox 2.6M
gcc     1.5G

দয়া করে মনে রাখবেন যে এটি কোনও প্রদত্ত চিত্রের জন্য প্রয়োজনীয় প্রকৃত ডাউনলোড দেখায় না এবং এটি চিত্রটি ডাউনলোড করার পরে ফলাফলটি প্রদর্শন করবে তবে এটি অন্যের তুলনায় কোনও প্রদত্ত চিত্রটি কীভাবে ফুলেছে সে সম্পর্কে কিছু ধারণা দেয়।

আপনি যে ছবিগুলি অন্য মেশিনে ডাউনলোড করতে চান, বা একেবারেই ব্যবহার করতে চান তা সিদ্ধান্ত নিতে আপনি এটি একটি মেশিনে চালাতে পারেন।



1

আপনি যদি সত্যিই টানুন অপারেশনের জন্য ডকার কোডটি সন্ধান করেন তবে আমি মনে করি আপনার উত্তর আছে। যদি ধারকটির চিত্রটি ক্যাশে না করা হয়, তবে চিত্রটি টানার সময় ডকার প্রথমে রেজিস্ট্রি থেকে স্তর সম্পর্কিত তথ্য, প্রতিটি স্তরের আকার ইত্যাদির মাধ্যমে চিত্র সম্পর্কে তথ্য সংগ্রহ করে etc.

আমি এই ফাইলটি পড়তে উল্লেখ করব।

https://github.com/moxiegirl/docker/blob/master/distribution/xfer/download.go


1
  1. ডকার হাবের চিত্রের জন্য:
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. মাইক্রোসফ্ট কনটেইনার রেজিস্ট্রির মতো অন্যান্য রেজিস্ট্রিতে চিত্রের জন্য। আমি 3 উপায় খুঁজে বের করতে।

    • docker manifest inspectম্যানিফেস্টের ডেটা পর্যবেক্ষণ করতে ব্যবহার করুন , যা আপনাকে চিত্রের সংকুচিত আকারটি কীভাবে অর্জন করবেন সে সম্পর্কে ধারণা দিতে পারে।

    docker manifest inspect -v <registry-domain>/<image-name> | grep size | awk -F ':' '{sum+=$NF} END {print sum}' | numfmt --to=iec-i
    

    সক্ষম করতে docker manifest inspect, সম্পাদনা ~/.docker/config.jsonফাইল এবং সেট experimentalকরার enable(রেফারেন্স। Docker পরিদর্শন স্পষ্ট )

    • চিত্রটি ডকার হাবের দিকে চাপ দিন এবং আপনি ডকার হাব ওয়েবসাইটে চিত্রটির সংকুচিত আকার পেতে পারেন।

    • docker save.Tar ফাইলটিতে চিত্র সংরক্ষণ করতে এবং তারপরে একটি .tar.gz ফাইলটি সংকোচনের জন্য ব্যবহার করুন।

docker save my-image:latest > my-image.tar

# Compress the .tar file
gzip my-image.tar

# Check the size of the compressed image
ls -lh my-image.tar.gz
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.