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

Dockerfile

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

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

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

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

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

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

याउलट, दुसरी स्क्रिप्टचा वापर हायलाइट करते डॉकरफाइलमध्ये कमांड. पहिल्या स्क्रिप्ट प्रमाणेच, ते सह सुरू होते बेस इमेज सेट करण्यासाठी कमांड आणि कार्यरत निर्देशिका परिभाषित करण्यासाठी आदेश. येथे मुख्य फरक आहे ADD कमांड, जी रिमोट URL वरून फाइल्स जोडण्यासाठी वापरली जाते, या प्रकरणात, . द कमांड केवळ फाइल्स कॉपी करत नाही तर संकुचित फाइल्स आपोआप काढण्याची क्षमता देखील आहे, जसे की नंतरच्या द्वारे दर्शविल्याप्रमाणे कमांड जी काढते १८ मध्ये फाइल करा निर्देशिका यानंतर, द कमांड आवश्यक पायथन पॅकेजेस स्थापित करते आणि कमांड पोर्ट 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 चे सखोल विश्लेषण

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

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

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

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

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