আমি ম্যানুয়ালি ডকার হাব থেকে একটি ডকার চিত্র ডাউনলোড করতে চাই । আরও সুনির্দিষ্টভাবে, আমি একটি সীমাবদ্ধ পরিবেশে একটি মেশিনে ডকার হাব থেকে একটি ডকার চিত্র ডাউনলোড করতে চাই যা ডকার ক্লায়েন্ট সফ্টওয়্যার ইনস্টল করে না (এবং পারে না)। আমি ভাবতাম যে এটি অফিসিয়াল এপিআই ব্যবহার করে সম্ভব হবে , তবে এটি এমনটি বলে মনে হচ্ছে না - নীচের আলোচনাটি দেখুন:
সত্যিই কি এমন ঘটনা ঘটেছে যে এপিআই চিত্র ডাউনলোড করতে সমর্থন করে না? এখানে কাজ করার একটি উপায় আছে কি?
আপডেট 1:
আমি নিম্নলিখিত সার্ভারফল্ট পোস্ট জুড়ে এসেছি:
গৃহীত সমাধান ব্যবহার docker save
কমান্ড যা আমার অবস্থায় সাহায্য করে না। তবে সেখানে পোস্ট করা আরও একটি সমাধান নিম্নলিখিত স্ট্যাক ওভারফ্লো পোস্টটির উদ্ধৃতি দিয়েছে:
সেগুলির সমাধানগুলির মধ্যে একটি কমান্ড-লাইন সরঞ্জামকে বোঝায় যা ডকার-রেজিস্ট্রি-ডিবাগ নামে পরিচিত যা অন্যান্য জিনিসগুলির মধ্যে curl
একটি চিত্র ডাউনলোড করার জন্য একটি আদেশ তৈরি করতে পারে । আমি যা পেয়েছি তা এখানে:
user@host:~$ docker-registry-debug curlme docker ubuntu
# Reading user/passwd from env var "USER_CREDS"
# No password provided, disabling auth
# Getting token from https://index.docker.io
# Got registry endpoint from the server: https://registry-1.docker.io
# Got token: signature=1234567890abcde1234567890abcde1234567890,repository="library/docker",access=read
curl -i --location-trusted -I -X GET -H "Authorization: Token signature=1234567890abcde1234567890abcde1234567890,repository="library/docker",access=read" https://registry-1.docker.io/v1/images/ubuntu/layer
user@host:~$ curl \
-i --location-trusted -I -X GET \
-H "Authorization: Token signature=1234567890abcde1234567890abcde1234567890,repository="library/docker",access=read"
https://registry-1.docker.io/v1/images/ubuntu/layer
HTTP/1.1 404 NOT FOUND
Server: gunicorn/18.0
Date: Wed, 29 Nov 2017 01:00:00 GMT
Expires: -1
Content-Type: application/json
Pragma: no-cache
Cache-Control: no-cache
Content-Length: 29
X-Docker-Registry-Version: 0.8.15
X-Docker-Registry-Config: common
Strict-Transport-Security: max-age=31536000
সুতরাং দুর্ভাগ্যবশত দেখে মনে হচ্ছে curl
উত্পন্ন আদেশটি কাজ করে না।
আপডেট 2:
দেখে মনে হচ্ছে যে আমি ডকার হাব থেকে স্তর ব্লবগুলি ডাউনলোড করতে সক্ষম। এখানে আমি বর্তমানে এটি সম্পর্কে যাচ্ছি যে এখানে।
একটি অনুমোদনের টোকেন পান:
user@host:~$ export TOKEN=\
"$(curl \
--silent \
--header 'GET' \
"https://auth.docker.io/token?service=registry.docker.io&scope=repository:library/ubuntu:pull" \
| jq -r '.token' \
)"
একটি চিত্রের ম্যানিফেস্টটি টানুন:
user@host:~$ curl \
--silent \
--request 'GET' \
--header "Authorization: Bearer ${TOKEN}" \
'https://registry-1.docker.io/v2/library/ubuntu/manifests/latest' \
| jq '.'
একটি চিত্রের ম্যানিফেস্টটি টানুন এবং অঙ্কুর অঙ্কগুলি বের করুন:
user@host:~$ curl \
--silent \
--request 'GET' \
--header "Authorization: Bearer ${TOKEN}" \
'https://registry-1.docker.io/v2/library/ubuntu/manifests/latest' \
| jq -r '.fsLayers[].blobSum'
sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4
sha256:be588e74bd348ce48bb7161350f4b9d783c331f37a853a80b0b4abc0a33c569e
sha256:e4ce6c3651b3a090bb43688f512f687ea6e3e533132bcbc4a83fb97e7046cea3
sha256:421e436b5f80d876128b74139531693be9b4e59e4f1081c9a3c379c95094e375
sha256:4c7380416e7816a5ab1f840482c9c3ca8de58c6f3ee7f95e55ad299abbfe599f
sha256:660c48dd555dcbfdfe19c80a30f557ac57a15f595250e67bfad1e5663c1725bb
একটি একক স্তর ব্লব ডাউনলোড করুন এবং এটি একটি ফাইলে লিখুন:
user@host:~$ BLOBSUM=\
"sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
user@host:~$ curl \
--silent \
--location \
--request GET \
--header "Authorization: Bearer ${TOKEN}" \
"https://registry-1.docker.io/v2/library/ubuntu/blobs/${BLOBSUM}" \
> "${BLOBSUM/*:/}.gz"
ব্লব অঙ্কের সমস্তগুলি একটি ফাইলে লিখুন:
user@host:~$ curl \
--silent \
--request 'GET' \
--header "Authorization: Bearer ${TOKEN}" \
'https://registry-1.docker.io/v2/library/ubuntu/manifests/latest' \
| jq -r '.fsLayers[].blobSum' > ubuntu-blobsums.txt
ম্যানিফেস্ট থেকে স্তর স্তরগুলি সব ডাউনলোড করুন:
user@host:~$ while read BLOBSUM; do
curl \
--silent \
--location \
--request 'GET' \
--header "Authorization: Bearer ${TOKEN}" \
"https://registry-1.docker.io/v2/library/ubuntu/blobs/${BLOBSUM}" \
> "${BLOBSUM/*:/}.gz"; \
done < blobsums.txt
এখন আমার কাছে একগুচ্ছ স্তর ব্লব রয়েছে এবং সেগুলি একটি চিত্রের মধ্যে পুনরায় সংযুক্ত করা দরকার - আমার মনে হয়।
সম্পর্কিত লিংক:
ডকার সম্প্রদায় ফোরাম: ডকার হাব এপিআই চিত্রগুলি পুনরুদ্ধার করে
ডকার সম্প্রদায় ফোরাম: ডকার হাব চিত্রগুলির ম্যানুয়াল ডাউনলোড
ডকার ইস্যু # 1016: ডকার কমান্ড ছাড়াই ডকার চিত্রগুলি আনুন। যেমন উইজেট সহ
সার্ভারফল্ট: অ-ইন্টারনেট-সংযুক্ত মেশিনে স্থানান্তর করার জন্য ডকার চিত্র ডাউনলোড করা
স্ট্যাকওভারফ্লো: অ-ইন্টারনেট-সংযুক্ত মেশিনে স্থানান্তর করার জন্য ডকার চিত্র ডাউনলোড করা
স্ট্যাকওভারফ্লো: পুল কমান্ড ব্যবহার না করে ডকার চিত্রগুলি কীভাবে ডাউনলোড করবেন?
স্ট্যাকওভারফ্লো: ডকার অফিসিয়াল রেজিস্ট্রি (ডকার হাব) ইউআরএল