/ / रनिंग डॉकर इमेज - लाइनक्स, बैश, डूकर, डूकर-फॉर-मैक

रनिंग डॉकर छवि - लिनक्स, बैश, डॉकर, डॉकर-फॉर-मैक

The उपयोगकर्ता गाइड बताता है कि एक छवि निम्नानुसार चलाया जाना चाहिए:

docker run -t -i ubuntu /bin/bash

मै समझ गया -t छद्म टर्मिनल बनाता है और -i यह इंटरैक्टिव बनाता है । लेकिन ऐसा लगता है कि /bin/bash भाग अनावश्यक है । चाहे मैं इसे चलाने के साथ या बिना /bin/bash, मैं एक इंटरैक्टिव संकेत है कि मैं पढ़ सकते है और दोनों समय से लिख दिया हूं ।

root@77eeb1f4ac2a:/#

हमें क्यों चाहिए /bin/bash?

भाग 2

मैं Docker पर मैक के लिए चल रहा हूं. जब मैं डाउनलोड hello-world द्विआधारी और इसे चलाने के लिए, यह "केवल एस 1kb. जाहिर है एक लिनक्स छवि wasn "इसके साथ डाउनलोड टी । छोटी है hello-world द्विआधारी बंद मेरे मैक कर्नेल या एक छोटे लिनक्स कर्नेल के बंद चल रहा है कि मैक के लिए Docker के साथ आता है?

उत्तर:

जवाब के लिए 2 № 1

हम क्यों की जरूरत है/

क्योंकि जबकि ubuntu छवि को चलाने के लिए कॉंफ़िगर किया जा सकता है /bin/bash डिफ़ॉल्ट रूप से, कि "जा रहा है हर छवि के सच नहीं है ।यदि आप एक छवि है कि डिफ़ॉल्ट रूप से एक वेब सर्वर शुरू होता है, और आप चलाना चाहते है bash... तुम उस स्पष्ट बनाने की जरूरत है । कुछ छवियां "t किसी भी डिफ़ॉल्ट आदेश निर्दिष्ट करें, के लिए अग्रणी:

$ docker run -it alpine
docker: Error response from daemon: No command specified.

यह दर्द होता है जब एक कंटेनर शुरू करने के लिए स्पष्ट नहीं है, विशेष रूप से एक inmage का उपयोग कर कि तुम didn "टी अपने आप का निर्माण ।

जब मैं हैलो दुनिया बाइनरी डाउनलोड करने और इसे चलाने के...

जो हैलो दुनिया द्विआधारी?

लेकिन Linux के एक VM इसे क्रियांवित है या मेरे मैक इसे क्रियांवित?

गोदी श्रमिक केवल लिनक्स के अंतर्गत चलता है । जब आप OS X या Windows के अंतर्गत Docker का उपयोग कर रहे हैं, तो आप कंटेनर चला रहे हैं के भीतर एक Linux VM द्वारा उस उद्देश्य के लिए पैदा docker-machine (या, पहले, boot2docker). के तहत Windows Docker हाइपर V का उपयोग करता है, और ओएस एक्स पर यह पहले VirtualBox और अधिक हाल के संस्करणों में इस्तेमाल किया जा सकता है कुछ और का उपयोग कर (यह "जब से मैं" ve ओएस एक्स के तहत चलाने के Docker) ।


जवाब के लिए 2 № 2

भाग 1:

आप जो भी पास के बाद docker run -t -i ubuntu पहला आदेश है कि आपका कंटेनर चला जाएगा । आप का उपयोग करने की कोशिश कर सकते है/ echo hello और यह कार्रवाई में देखते हैं । Ubuntu डिफ़ॉल्ट रूप से मार का उपयोग करता है, लेकिन अंय कंटेनरों अपने Dockerfiles के आधार पर अंय आज्ञाओं का उपयोग करें ।

भाग 2:

जब आप hello-वर्ल्ड चलाते हैं, तो एक डॉकर कंटेनर hello-छवि से बनाया जाता है ।कंटेनरों "आवेदन और अपनी निर्भरता के सभी शामिल है-लेकिन अंय कंटेनरों के साथ कर्नेल साझा, मेजबान ऑपरेटिंग सिस्टम पर उपयोगकर्ता अंतरिक्ष में अलग प्रक्रियाओं के रूप में चल रहे." ।

हैलो-दुनिया में विशिष्ट खरोंच से बनाया गया है https://hub.docker.com/_/scratch/.