आजकल, अल्पाइन छवियां सीधे /bin/sh
डिफ़ॉल्ट रूप से बूट हो जाएंगी , निष्पादित करने के लिए एक शेल निर्दिष्ट किए बिना:
$ sudo docker run -it --rm alpine
/ # echo $0
/bin/sh
यह तब से है जब alpine
छवि Dockerfiles में अब एक CMD
कमांड होता है, जो शेल को कंटेनर के शुरू होने पर निष्पादित करने के लिए निर्दिष्ट करता है CMD ["/bin/sh"]
:।
पुराने अल्पाइन छवि संस्करणों (2017 के पूर्व) में, CMD कमांड का उपयोग नहीं किया गया था, क्योंकि Docker CMD के लिए एक अतिरिक्त परत बनाता था जिससे छवि का आकार बढ़ जाता था। यह कुछ ऐसा है जो अल्पाइन छवि डेवलपर्स से बचना चाहता था। हाल के डॉकर संस्करणों (1.10+) में, सीएमडी अब एक परत नहीं रखता है, और इसलिए इसे alpine
छवियों में जोड़ा गया था । इसलिए, जब तक सीएमडी को ओवरराइड नहीं किया जाता है, हाल की अल्पाइन छवियां बूट हो जाएंगी /bin/sh
।
संदर्भ के लिए, ग्लाइडर लैब्स द्वारा आधिकारिक अल्पाइन डॉकफाइल्स के लिए निम्नलिखित प्रतिबद्ध देखें:
https://github.com/gliderlabs/docker-alpine/commit/ddc19dd95ceb3584ced58be0d8d7e9169d04c7a3#diff-db3dfdee92cw17cf1717