2015-10-29 8 views
5

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

+0

आप आदेशों Dockerfile खुद चलाता चला सकते हैं। लेकिन आप एक स्क्रिप्ट पर आधारित छवि को "रूपांतरित" नहीं कर सकते हैं। यदि आपको पसंद नहीं है कि डॉकर छवि कैसे काम करती है तो डॉकरफ़ाइल को संशोधित करें और पुनः प्रयास करें? –

उत्तर

1

संक्षेप में - नहीं।

एक उपकरण ऐसे dockerfile-parse के रूप में आप अलग-अलग RUN कमांड चलाने सकता है के साथ Dockerfile पार्स करने से है, लेकिन इस Dockerfile के उत्पादन को दोहराने नहीं होता।

आपको एक ही ओएस का एक ही संस्करण चलाना होगा।

ADD और COPY कमांड फाइल सिस्टम को प्रभावित करते हैं, जो कि अपने नामस्थान में है। कंटेनर के बाहर इन्हें चलाने से संभावित रूप से आपके मेजबान सिस्टम को तोड़ सकता है। आपके होस्ट में ऐसी जगहें भी होंगी जहां कंटेनर छवि नहीं होगी।

VOLUME माउंट्स फाइलटाइम को भी प्रभावित करेंगे।

FROM छवि (जो बदले में अन्य छवियों से निकली जा सकती है) में अन्य एप्लिकेशन इंस्टॉल हो सकते हैं।

लेखन बड़ी स्थापना या डाउनलोड चरण होने पर डॉकरफ़ाइल एक धीमी प्रक्रिया हो सकती है। इसे कम करने के लिए, नए संकुल को नए RUN कमांड (कैश का लाभ उठाने के लिए) के रूप में जोड़ने का प्रयास करें और कार्यक्षमता पूर्ण होने पर परतों को अनुकूलित/संपीड़ित करने के लिए सुविधाओं को बढ़ाएं।

आप अपने कंटेनर छवियों के लिए टीडीडी दृष्टिकोण प्राप्त करने और विकास के दौरान प्रतिक्रियाओं को रोकने के लिए ServerSpec जैसे कुछ भी उपयोग करना चाह सकते हैं।

सर्वश्रेष्ठ अभ्यास दस्तावेज़ here, gotchas और original article

0

आप इस

FROM <base> 

RUN apt-get update -y 
RUN apt-get install <some application> -y 
0

तरह dockerfile अंदर आवेदन स्थापित कर सकते हैं मूल रूप से आप एक डोकर कंटेनर की फ़ाइल "डोकर निर्यात", का उपयोग कर प्रणाली की एक प्रति है जिसे आप एक पाश डिवाइस के लिए लिख सकते हैं कर सकते हैं:

docker build -t <YOUR-IMAGE> ... 
docker create --name=<YOUR-CONTAINER> <YOUR-IMAGE> 
dd if=/dev/zero of=disk.img bs=1 count=0 seek=1G 
mkfs.ext2 -F disk.img 
sudo mount -o loop disk.img /mnt 
docker export <YOUR-CONTAINER> | sudo tar x -C /mnt 
sudo umount /mnt 

एक डॉकर कंटेनर को कच्चे फ़ाइल सिस्टम छवि में कनवर्ट करें।

अधिक यहाँ जानकारी: http://mr.gy/blog/build-vm-image-with-docker.html

संबंधित मुद्दे