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


57

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

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

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

जवाबों:


87

संक्षिप्त: saveCLI कमांड का उपयोग करें ।

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


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

sudo docker pull ubuntu

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

sudo docker save -o ubuntu_image.docker ubuntu

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

sudo docker load -i ubuntu_image.docker

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


भयानक, यह आज शाम को एक चक्कर देगा। धन्यवाद!
shearn89

2
पास से, महसूस किया कि वे अब उपयोग नहीं करते हैं docker load <image>, इसके बजाय, उपयोग docker load < ubuntu_image.dockerकरते हैं। docs.docker.com/engine/reference/commandline/load
लियोनेल चैन

11
करना sudo docker load -i ubuntu_image.dockerहोगा या यह काम नहीं करेगा
जॉन कुल्विनियर

मुझे @ shearn89 के रूप में एक ही सेटअप मिला है, डॉकटरूल का उपयोग करके एक स्थानीय मशीन पर खींचने और फ़ाइल को विकास के वातावरण में ले जाने के बाद मुझे त्रुटि मिल रही है 'विंडोज़ पर लिनक्स छवि लोड नहीं कर सकता'। दोनों स्थानीय मशीन और विकास वातावरण खिड़कियां हैं, क्या आप जानते हैं कि इस वर्कफ़्लो के बारे में एक लिनक्स छवि के निर्माण का कारण क्या है?
रयान Haunfelder

27

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

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

सौभाग्य से, मुझे यह जवाब StackOverflow पर मिला , जो कि GitHub पर samalba द्वारा प्रदान किए गए एक उपयोगी उपकरण का उपयोग करने की सिफारिश करता है: 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

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.