डॉकरफाइलमधील 'कॉपी' आणि 'एडीडी' कमांडमधील फरक समजून घेणे

डॉकरफाइलमधील 'कॉपी' आणि 'एडीडी' कमांडमधील फरक समजून घेणे
डॉकरफाइलमधील 'कॉपी' आणि 'एडीडी' कमांडमधील फरक समजून घेणे

डॉकरफाइल कमांड स्पष्ट केले

डॉकरफाइलमधील 'कॉपी' आणि 'एडीडी' कमांड्स तुमच्या कंटेनरच्या फाइलसिस्टममध्ये फाइल्सचा परिचय करून देतात, परंतु त्या वेगळ्या कार्यक्षमतेसह आणि सर्वोत्तम-वापराच्या परिस्थितींसह येतात. हे फरक समजून घेणे कार्यक्षम डॉकरफाइल व्यवस्थापनासाठी आवश्यक आहे आणि आपले कंटेनरीकृत अनुप्रयोग अपेक्षेप्रमाणे कार्य करतात याची खात्री करा.

'कॉपी' हे प्रामुख्याने सरळ फाइल कॉपी करण्यासाठी वापरले जात असताना, 'ADD' अतिरिक्त क्षमता देते, जसे की रिमोट URL हाताळणे आणि संकुचित फाइल्स काढणे. हा लेख प्रत्येक कमांडच्या बारकावे एक्सप्लोर करेल, तुमचे डॉकर बिल्ड ऑप्टिमाइझ करण्यासाठी एकापेक्षा एक कधी वापरायचे याचे मार्गदर्शन करेल.

आज्ञा वर्णन
FROM तयार होत असलेल्या डॉकर इमेजसाठी वापरण्यासाठी बेस इमेज निर्दिष्ट करते.
WORKDIR कंटेनरमध्ये कार्यरत निर्देशिका सेट करते.
COPY होस्टकडून कंटेनरच्या फाइलसिस्टमवर फाइल्स किंवा निर्देशिका कॉपी करते.
ADD कंटेनरच्या फाइलसिस्टममध्ये फाइल्स, निर्देशिका किंवा रिमोट URL जोडते आणि फाइल एक्सट्रॅक्शन हाताळू शकते.
RUN कंटेनरच्या वातावरणात कमांड कार्यान्वित करते.
EXPOSE डॉकरला सूचित करते की कंटेनर रनटाइमच्या वेळी निर्दिष्ट नेटवर्क पोर्टवर ऐकतो.

डॉकरफाइल कमांडचे तपशीलवार स्पष्टीकरण

प्रथम स्क्रिप्ट चा वापर दर्शवते COPY डॉकरफाइलमध्ये कमांड. द COPY सूचना सरळ आहे आणि होस्ट सिस्टममधून डॉकर कंटेनरच्या फाइल सिस्टममध्ये फाइल्स किंवा डिरेक्टरी कॉपी करण्यासाठी वापरली जाते. या उदाहरणात, स्क्रिप्ट ने सुरू होते FROM कमांड, जे बेस इमेज म्हणून निर्दिष्ट करते python:3.8-slim-buster . द WORKDIR कमांड कंटेनरमध्ये कार्यरत डिरेक्टरी सेट करते . यानंतर आहे COPY कमांड, जे होस्टवरील वर्तमान निर्देशिकेची सामग्री वर कॉपी करते कंटेनर मध्ये निर्देशिका. फाइल्स कॉपी केल्यानंतर, द RUN मध्ये निर्दिष्ट आवश्यक पायथन पॅकेजेस स्थापित करण्यासाठी कमांडचा वापर केला जातो फाइल शेवटी, द EXPOSE कमांड पोर्ट 80 बाह्य जगासाठी उपलब्ध करते.

याउलट, दुसरी स्क्रिप्टचा वापर हायलाइट करते ADD डॉकरफाइलमध्ये कमांड. पहिल्या स्क्रिप्ट प्रमाणेच, ते सह सुरू होते FROM बेस इमेज सेट करण्यासाठी कमांड आणि WORKDIR कार्यरत निर्देशिका परिभाषित करण्यासाठी आदेश. येथे मुख्य फरक आहे ADD कमांड, जी रिमोट URL वरून फाइल्स जोडण्यासाठी वापरली जाते, या प्रकरणात, १५. द ADD कमांड केवळ फाइल्स कॉपी करत नाही तर संकुचित फाइल्स आपोआप काढण्याची क्षमता देखील आहे, जसे की नंतरच्या द्वारे दर्शविल्याप्रमाणे RUN कमांड जी काढते १८ मध्ये फाइल करा निर्देशिका यानंतर, द RUN कमांड आवश्यक पायथन पॅकेजेस स्थापित करते आणि EXPOSE कमांड पोर्ट 80 उपलब्ध करते.

डॉकरफाइलमध्ये कॉपी वापरणे

डॉकरफाइल उदाहरण

# Use an official Python runtime as a parent image
FROM python:3.8-slim-buster

# Set the working directory in the container
WORKDIR /app

# Copy the current directory contents into the container at /app
COPY . /app

# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

# Make port 80 available to the world outside this container
EXPOSE 80

डॉकरफाइलमध्ये ADD वापरणे

डॉकरफाइल उदाहरण

डॉकरफाइलमध्ये कॉपी आणि ADD चे सखोल विश्लेषण

दोन्ही असताना COPY आणि ADD कमांड होस्ट सिस्टमवरून कंटेनरच्या फाइलसिस्टममध्ये फाइल्स कॉपी करण्याच्या उद्देशाने कार्य करतात, त्यांच्याकडे विशिष्ट वैशिष्ट्ये आहेत आणि केसेस वापरतात जे प्रत्येक वेगवेगळ्या परिस्थितींमध्ये योग्य बनवतात. द COPY कमांड सोपी आणि अधिक अंदाज करण्यायोग्य आहे. मूळ फाइल कॉपी करण्यासाठी हे सर्वोत्तम वापरले जाते जेथे कोणत्याही अतिरिक्त प्रक्रियेची आवश्यकता नसते, जसे की संग्रहण काढणे किंवा रिमोट फाइल्स आणणे. हा आदेश खात्री देतो की कंटेनरमध्ये फक्त स्थानिक फाइल्स आणि डिरेक्टरीज कॉपी केल्या जातात, अशा प्रकारे स्वच्छ आणि सुरक्षित बिल्ड वातावरण राखले जाते.

दुसरीकडे, द ADD कमांड अधिक कार्यक्षमता प्रदान करते परंतु अतिरिक्त जटिलता आणि संभाव्य सुरक्षा जोखमीसह. द ADD कमांड URL डाउनलोड हाताळू शकते आणि संकुचित फायली स्वयंचलितपणे काढू शकते जसे की २७, २८, आणि .bzip2. तुमच्या बिल्ड प्रक्रियेसाठी रिमोट मालमत्ता किंवा संग्रहण आवश्यक असलेल्या प्रकरणांमध्ये हे फायदेशीर ठरू शकते जे प्रतिमा निर्मिती दरम्यान काढले जाणे आवश्यक आहे. तथापि, या अतिरिक्त वैशिष्ट्यांमध्ये जोखीम येतात, जसे की फायलींचे अनावधानाने ओव्हरराईट करणे आणि रिमोट स्थानांवरून डाउनलोड करताना सुरक्षितता भेद्यता. म्हणून, दरम्यान निर्णय घेताना या घटकांचा काळजीपूर्वक विचार करणे महत्वाचे आहे COPY आणि ADD.

डॉकरफाईलमध्ये कॉपी आणि ॲड बद्दल सामान्य प्रश्न आणि उत्तरे

  1. चा प्राथमिक उपयोग काय आहे COPY डॉकरफाइलमध्ये कमांड?
  2. COPY कमांड मुख्यतः होस्ट सिस्टममधून डॉकर कंटेनरमध्ये स्थानिक फाइल्स आणि निर्देशिका कॉपी करण्यासाठी वापरली जाते.
  3. आपण कधी वापरावे ADD त्याऐवजी आज्ञा COPY?
  4. आपण वापरावे ADD जेव्हा तुम्हाला URL वरून फाइल कॉपी करायची असेल किंवा तुम्हाला बिल्ड प्रक्रियेदरम्यान संकुचित फाइल्स काढण्याची आवश्यकता असेल तेव्हा कमांड.
  5. वापरण्याचे सुरक्षा परिणाम काय आहेत ADD आज्ञा?
  6. ADD कमांड सुरक्षितता जोखीम सादर करू शकते, विशेषत: रिमोट URL वरून फाइल्स डाउनलोड करताना, कारण ते संभाव्यपणे विद्यमान फाइल्स ओव्हरराइट करू शकते किंवा भेद्यता आणू शकते.
  7. करू शकता COPY कमांड एक्सट्रॅक्ट कॉम्प्रेस्ड फाइल्स?
  8. नाही, द COPY कमांडमध्ये कॉम्प्रेस केलेल्या फाइल्स काढण्याची क्षमता नाही; ते फक्त ते जसे आहेत तसे कॉपी करते.
  9. कसे ADD संकुचित फायली वेगळ्या पद्धतीने हाताळा COPY?
  10. ADD कमांड आपोआप कॉम्प्रेस केलेल्या फाइल्स काढते जसे की २७, २८, आणि .bzip2 जेव्हा ते कंटेनरमध्ये जोडले जातात.
  11. सह वाइल्डकार्ड वापरणे शक्य आहे का COPY आज्ञा?
  12. होय, तुम्ही यासह वाइल्डकार्ड वापरू शकता COPY पॅटर्नशी जुळणाऱ्या एकाधिक फाइल्स किंवा डिरेक्ट्रीज कॉपी करण्यासाठी कमांड.
  13. ला URL प्रदान केल्यास काय होते ADD आदेश पोहोचत नाही?
  14. ला URL प्रदान केल्यास ADD कमांड पोहोचू शकत नाही, डॉकर बिल्ड प्रक्रिया अयशस्वी होईल.
  15. साध्या, स्थानिक फाइल कॉपी ऑपरेशनसाठी तुम्ही कोणती कमांड वापरावी?
  16. साध्या, स्थानिक फाइल कॉपी ऑपरेशन्ससाठी, तुम्ही वापरावे COPY आदेश अधिक सरळ आणि सुरक्षित आहे.
  17. करू शकता ADD कमांड स्थानिक आणि रिमोट दोन्ही स्रोतांमधून फायली जोडण्यासाठी वापरली जाते?
  18. होय, द ADD कमांड स्थानिक स्त्रोत आणि रिमोट URL या दोन्हींकडील फायली जोडू शकते, विशिष्ट परिस्थितींमध्ये ते अधिक बहुमुखी बनवते.

डॉकर कॉपी आणि ADD कमांड गुंडाळत आहे

कधी वापरायचे हे समजून घेणे COPY आणि ADD तुमच्या डॉकरफाईलमध्ये तुमच्या कंटेनर बिल्डस् अनुकूल करण्यासाठी आवश्यक आहे. असताना COPY स्थानिक फाइल्ससाठी सरळ आणि सुरक्षित आहे, ADD अतिरिक्त जटिलता आणि संभाव्य सुरक्षा चिंतांच्या किंमतीवर अतिरिक्त क्षमता प्रदान करते. तुमच्या विशिष्ट गरजांवर आधारित योग्य कमांड निवडणे तुमच्या डॉकर इमेजची कार्यक्षमता आणि सुरक्षितता वाढवू शकते.