सवाल गैर-इंटरनेट से जुड़ी मशीन में स्थानांतरण के लिए डॉकर छवि डाउनलोड करना


मैं एक ऐसे कार्यालय में काम कर रहा हूं जहां मेरा लैपटॉप इंटरनेट से जुड़ा हुआ है, लेकिन कड़ाई से नियंत्रित है। मुझे अनधिकृत सॉफ़्टवेयर इंस्टॉल करने की अनुमति नहीं है।

मेरा विकास वर्कस्टेशन मेरा है जैसा कि मैं चाहता हूं, लेकिन इसमें इंटरनेट कनेक्शन नहीं है।

क्या मेरे पास हब से डॉकर छवियों को एक फ़ाइल के रूप में डाउनलोड करने का कोई तरीका है जिसे मैं अपने देव वर्कस्टेशन में स्नीकर-नेट कर सकता हूं? मैं आरपीएम या रूबी रत्न कैसे डाउनलोड कर सकता हूं और उन्हें सीडी में जला सकता हूं? या 'डॉकर पुल' कमांड का उपयोग कर छवियों को डाउनलोड करने का एकमात्र तरीका है?


42
2018-06-24 10:19


मूल




जवाब:


संक्षिप्त: का प्रयोग करें save सीएलआई कमांड।

https://docs.docker.com/engine/reference/commandline/save/


आप उस छवि पर उस छवि को खींच सकते हैं जिस पर इंटरनेट तक पहुंच है।

sudo docker pull ubuntu

फिर आप इस छवि को एक फाइल में सहेज सकते हैं

sudo docker save -o ubuntu_image.docker ubuntu

फ़ाइल को ऑफ़लाइन कंप्यूटर (यूएसबी / सीडी / जो कुछ भी) पर स्थानांतरित करें और फ़ाइल से छवि लोड करें:

sudo docker load -i ubuntu_image.docker

(पुराने संस्करणों पर यह बस था docker load image.docker, अधिक जानकारी के लिए टिप्पणियां देखें।)


67
2017-09-02 05:41



भयानक, इस शाम को एक भंवर दे देंगे। धन्यवाद! - shearn89
द्वारा पारित, एहसास हुआ कि वे अब उपयोग नहीं करते हैं docker load <image>, इसके बजाय, उपयोग करें docker load < ubuntu_image.docker बजाय। docs.docker.com/engine/reference/commandline/load - Lionel Chan
करना था sudo docker load -i ubuntu_image.docker या यह काम नहीं करेगा - John Culviner
मुझे डॉकरटोल का उपयोग करके स्थानीय मशीन पर खींचने और फ़ाइल को विकास पर्यावरण में स्थानांतरित करने के बाद @ shearn89 के समान सेटअप मिला है, मुझे त्रुटि मिल रही है 'विंडोज़ पर लिनक्स छवि लोड नहीं कर सकता'। स्थानीय मशीन और विकास वातावरण दोनों खिड़कियां हैं, क्या आप जानते हैं कि इस वर्कफ़्लो के बारे में लिनक्स छवि का निर्माण क्यों होता है? - Ryan Haunfelder


मुझे एहसास है कि पहले से ही एक स्वीकार्य उत्तर है, हालांकि मैं इस समाधान की पेशकश करना चाहता था, जो मुझे लगता है कि सीधे पूछे जाने वाले प्रश्नों को सीधे संबोधित करते हैं: "मैं पुनर्प्राप्ति करने के लिए डॉकर का उपयोग किये बिना डॉकर छवि कैसे डाउनलोड करूं?"

मेरे पास एक समान समस्या है, जहां मेरी कंपनी की नीतियों के लिए मुझे फ़ाइल (फाइलों) (आमतौर पर यूआरएल के माध्यम से) के साथ एक टीम प्रदान करने की आवश्यकता होती है जिसे मैं उपयोग करना चाहता हूं। फिर वे विभिन्न स्कैन और ऑडिट करते हैं, और फिर फ़ाइल को हमारे डिस्कनेक्टेड डेवलपमेंट नेटवर्क पर रखेंगे। मैं फ़ाइल को पुनर्प्राप्त करने के लिए डॉकर का उपयोग नहीं कर सकता, फिर इसे निर्यात कर सकता हूं और उसे उस टीम को सौंप सकता हूं, इसलिए प्रदान किया गया दूसरा उत्तर मेरे लिए एक विकल्प नहीं था।

सौभाग्य से, मैंने पाया इस StackOverflow पर उत्तर दें, जो गिटहब में समलबा द्वारा प्रदान किए गए एक उपयोगी टूल का उपयोग करने की सिफारिश करता है: https://github.com/samalba/docker-registry-debug

बेशक, वह उपकरण डॉकर का उपयोग करके बनाया गया था, और जिस कारण से मुझे इसकी आवश्यकता है उसका कारण यह है क्योंकि मेरे पास डॉकर तक खुली पहुंच नहीं है :)। इसलिए, चूंकि मेरे पास वह विकल्प नहीं था, इसलिए मैं यहां दिए गए चरणों का स्पेल करूंगा (यह सब उस रेपो से 05fffc4344fd6f866f84c403caae3ba81193dd45 प्रतिबद्ध है):

$ go get github.com/dustin/go-humanize
$ go build
$ ./docker-registry-debug --help
$ ./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=e145911c2e458b3842e4e92c90bbf5bf2c17bd56,repository="library/docker",access=read
curl -i --location-trusted -I -X GET -H "Authorization: Token signature=e145911c2e458b3842e4e92c90bbf5bf2c17bd56,repository="library/docker",access=read" https://registry-1.docker.io/v1/images/ubuntu/layer

मनाइए कि यह किसी और के लिए सहायक हो!


19
2018-01-01 04:51