ഒരു ഡോക്കർ ഫയലിലെ 'പകർപ്പ്', 'ADD' കമാൻഡുകൾ തമ്മിലുള്ള വ്യത്യാസങ്ങൾ മനസ്സിലാക്കുക

Dockerfile

ഡോക്കർഫിൽ കമാൻഡുകൾ വിശദീകരിച്ചു

ഒരു ഡോക്കർഫയലിലെ 'COPY', 'ADD' കമാൻഡുകൾ നിങ്ങളുടെ കണ്ടെയ്‌നറിൻ്റെ ഫയൽ സിസ്റ്റത്തിലേക്ക് ഫയലുകൾ അവതരിപ്പിക്കാൻ സഹായിക്കുന്നു, എന്നാൽ അവ വ്യതിരിക്തമായ പ്രവർത്തനങ്ങളും മികച്ച ഉപയോഗ സാഹചര്യങ്ങളുമായാണ് വരുന്നത്. കാര്യക്ഷമമായ ഡോക്കർഫയൽ മാനേജ്മെൻ്റിനും നിങ്ങളുടെ കണ്ടെയ്നറൈസ്ഡ് ആപ്ലിക്കേഷനുകൾ പ്രതീക്ഷിച്ച പോലെ പ്രവർത്തിക്കുന്നുവെന്ന് ഉറപ്പാക്കുന്നതിനും ഈ വ്യത്യാസങ്ങൾ മനസ്സിലാക്കേണ്ടത് അത്യാവശ്യമാണ്.

'പകർപ്പ്' പ്രാഥമികമായി നേരിട്ട് ഫയൽ പകർത്തുന്നതിനായി ഉപയോഗിക്കുമ്പോൾ, 'ADD' വിദൂര URL-കൾ കൈകാര്യം ചെയ്യലും കംപ്രസ് ചെയ്ത ഫയലുകൾ എക്‌സ്‌ട്രാക്റ്റുചെയ്യലും പോലുള്ള അധിക കഴിവുകൾ വാഗ്ദാനം ചെയ്യുന്നു. ഈ ലേഖനം ഓരോ കമാൻഡിൻ്റെയും സൂക്ഷ്മതകൾ പര്യവേക്ഷണം ചെയ്യും, നിങ്ങളുടെ ഡോക്കർ ബിൽഡുകൾ ഒപ്റ്റിമൈസ് ചെയ്യുന്നതിന് ഒന്നിനുപുറകെ മറ്റൊന്ന് എപ്പോൾ ഉപയോഗിക്കണമെന്ന് നിങ്ങളെ നയിക്കും.

കമാൻഡ് വിവരണം
FROM നിർമ്മിക്കുന്ന ഡോക്കർ ഇമേജിനായി ഉപയോഗിക്കേണ്ട അടിസ്ഥാന ചിത്രം വ്യക്തമാക്കുന്നു.
WORKDIR കണ്ടെയ്നറിനുള്ളിൽ പ്രവർത്തിക്കുന്ന ഡയറക്ടറി സജ്ജമാക്കുന്നു.
COPY ഹോസ്റ്റിൽ നിന്ന് കണ്ടെയ്‌നറിൻ്റെ ഫയൽസിസ്റ്റത്തിലേക്ക് ഫയലുകളോ ഡയറക്‌ടറികളോ പകർത്തുന്നു.
ADD കണ്ടെയ്‌നറിൻ്റെ ഫയൽ സിസ്റ്റത്തിലേക്ക് ഫയലുകൾ, ഡയറക്‌ടറികൾ അല്ലെങ്കിൽ റിമോട്ട് URL-കൾ ചേർക്കുന്നു, കൂടാതെ ഫയൽ എക്‌സ്‌ട്രാക്‌ഷൻ കൈകാര്യം ചെയ്യാൻ കഴിയും.
RUN കണ്ടെയ്നറിൻ്റെ പരിതസ്ഥിതിയിൽ ഒരു കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യുന്നു.
EXPOSE റൺടൈമിൽ നിർദ്ദിഷ്‌ട നെറ്റ്‌വർക്ക് പോർട്ടുകളിൽ കണ്ടെയ്‌നർ ശ്രദ്ധിക്കുന്നുവെന്ന് ഡോക്കറെ അറിയിക്കുന്നു.

ഡോക്കർഫൈൽ കമാൻഡുകളുടെ വിശദമായ വിശദീകരണം

ആദ്യ സ്ക്രിപ്റ്റ് ൻ്റെ ഉപയോഗം പ്രകടമാക്കുന്നു ഒരു ഡോക്കർഫയലിൽ കമാൻഡ് ചെയ്യുക. ദി നിർദ്ദേശങ്ങൾ ലളിതമാണ് കൂടാതെ ഹോസ്റ്റ് സിസ്റ്റത്തിൽ നിന്ന് ഡോക്കർ കണ്ടെയ്‌നറിൻ്റെ ഫയൽ സിസ്റ്റത്തിലേക്ക് ഫയലുകളോ ഡയറക്ടറികളോ പകർത്താൻ ഉപയോഗിക്കുന്നു. ഈ ഉദാഹരണത്തിൽ, സ്ക്രിപ്റ്റ് ആരംഭിക്കുന്നത് കമാൻഡ്, ഇത് അടിസ്ഥാന ഇമേജ് ഇതായി വ്യക്തമാക്കുന്നു python:3.8-slim-buster . ദി കമാൻഡ് കണ്ടെയ്‌നറിനുള്ളിലെ വർക്കിംഗ് ഡയറക്ടറിയെ സജ്ജമാക്കുന്നു . ഇതിനെ തുടർന്നാണ് കമാൻഡ്, ഇത് ഹോസ്റ്റിലെ നിലവിലെ ഡയറക്ടറിയുടെ ഉള്ളടക്കങ്ങൾ പകർത്തുന്നു /app കണ്ടെയ്നറിലെ ഡയറക്ടറി. ഫയലുകൾ പകർത്തിയ ശേഷം, ൽ വ്യക്തമാക്കിയിട്ടുള്ള ആവശ്യമായ പൈത്തൺ പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യാൻ കമാൻഡ് ഉപയോഗിക്കുന്നു ഫയൽ. ഒടുവിൽ, ദി കമാൻഡ് പോർട്ട് 80 പുറം ലോകത്തിന് ലഭ്യമാക്കുന്നു.

ഇതിനു വിപരീതമായി, രണ്ടാമത്തെ സ്ക്രിപ്റ്റ് ഇതിൻ്റെ ഉപയോഗം എടുത്തുകാണിക്കുന്നു ഒരു ഡോക്കർഫയലിൽ കമാൻഡ്. ആദ്യ സ്ക്രിപ്റ്റിന് സമാനമായി, ഇത് ആരംഭിക്കുന്നു അടിസ്ഥാന ഇമേജ് സജ്ജീകരിക്കാനുള്ള കമാൻഡ് കൂടാതെ പ്രവർത്തന ഡയറക്ടറി നിർവചിക്കുന്നതിനുള്ള കമാൻഡ്. ഇവിടെ പ്രധാന വ്യത്യാസം ആണ് ADD ഒരു റിമോട്ട് URL-ൽ നിന്ന് ഫയലുകൾ ചേർക്കാൻ ഉപയോഗിക്കുന്ന കമാൻഡ്, ഈ സാഹചര്യത്തിൽ, . ദി കമാൻഡിന് ഫയലുകൾ പകർത്തുക മാത്രമല്ല, കംപ്രസ് ചെയ്ത ഫയലുകൾ സ്വയമേവ എക്‌സ്‌ട്രാക്റ്റുചെയ്യാനുള്ള കഴിവുമുണ്ട് എക്‌സ്‌ട്രാക്‌റ്റുചെയ്യുന്ന കമാൻഡ് archive.tar.gz എന്നതിലേക്ക് ഫയൽ ചെയ്യുക ഡയറക്ടറി. ഇതേത്തുടർന്ന്, ദി കമാൻഡ് ആവശ്യമായ പൈത്തൺ പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നു, കൂടാതെ കമാൻഡ് പോർട്ട് 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 ഉപയോഗിക്കുന്നു

ഡോക്കർഫിൽ ഉദാഹരണം

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

# Set the working directory in the container
WORKDIR /app

# Add files from a remote URL
ADD https://example.com/data/archive.tar.gz /app/

# Extract the archive file
RUN tar -xzf /app/archive.tar.gz -C /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

ഡോക്കർഫയലിൽ പകർപ്പിൻ്റെയും കൂട്ടിച്ചേർക്കലിൻ്റെയും ആഴത്തിലുള്ള വിശകലനം

രണ്ട് സമയത്ത് ഒപ്പം ഹോസ്റ്റ് സിസ്റ്റത്തിൽ നിന്ന് കണ്ടെയ്‌നറിൻ്റെ ഫയൽ സിസ്റ്റത്തിലേക്ക് ഫയലുകൾ പകർത്തുന്നതിൻ്റെ ഉദ്ദേശ്യം കമാൻഡുകൾ നിറവേറ്റുന്നു, അവയ്ക്ക് വ്യത്യസ്‌തമായ സവിശേഷതകളുണ്ട്, അവ ഓരോന്നും വ്യത്യസ്‌ത സാഹചര്യങ്ങളിൽ അനുയോജ്യമാക്കുന്ന കേസുകൾ ഉപയോഗിക്കുന്നു. ദി കമാൻഡ് ലളിതവും കൂടുതൽ പ്രവചിക്കാവുന്നതുമാണ്. ആർക്കൈവുകൾ എക്‌സ്‌ട്രാക്‌റ്റുചെയ്യുന്നതോ വിദൂര ഫയലുകൾ ലഭ്യമാക്കുന്നതോ പോലുള്ള അധിക പ്രോസസ്സിംഗ് ആവശ്യമില്ലാത്ത അടിസ്ഥാന ഫയൽ പകർത്തലിനായി ഇത് മികച്ച രീതിയിൽ ഉപയോഗിക്കുന്നു. ലോക്കൽ ഫയലുകളും ഡയറക്‌ടറികളും മാത്രമേ കണ്ടെയ്‌നറിലേക്ക് പകർത്തിയിട്ടുള്ളൂ എന്ന് ഈ കമാൻഡ് ഉറപ്പാക്കുന്നു, അങ്ങനെ വൃത്തിയുള്ളതും സുരക്ഷിതവുമായ ബിൽഡ് എൻവയോൺമെൻ്റ് നിലനിർത്തുന്നു.

മറുവശത്ത്, ദി കമാൻഡ് കൂടുതൽ പ്രവർത്തനക്ഷമത നൽകുന്നു, എന്നാൽ കൂടുതൽ സങ്കീർണ്ണതയും സുരക്ഷാ അപകടസാധ്യതകളും ഉണ്ട്. ദി കമാൻഡിന് URL ഡൗൺലോഡുകൾ കൈകാര്യം ചെയ്യാനും കംപ്രസ് ചെയ്ത ഫയലുകൾ സ്വയമേവ എക്‌സ്‌ട്രാക്റ്റുചെയ്യാനും കഴിയും , .gzip, ഒപ്പം . നിങ്ങളുടെ ബിൽഡ് പ്രോസസ്സിന് ഇമേജ് സൃഷ്‌ടിക്കുമ്പോൾ എക്‌സ്‌ട്രാക്‌റ്റുചെയ്യേണ്ട റിമോട്ട് അസറ്റുകളോ ആർക്കൈവുകളോ ആവശ്യമുള്ള സന്ദർഭങ്ങളിൽ ഇത് പ്രയോജനപ്രദമാകും. എന്നിരുന്നാലും, ഈ അധിക ഫീച്ചറുകൾ റിമോട്ട് ലൊക്കേഷനുകളിൽ നിന്ന് ഡൗൺലോഡ് ചെയ്യുമ്പോൾ ഫയലുകളുടെ മനഃപൂർവമല്ലാത്ത പുനരാലേഖനം, സുരക്ഷാ കേടുപാടുകൾ എന്നിവ പോലുള്ള അപകടസാധ്യതകൾക്കൊപ്പം വരുന്നു. അതിനാൽ, അവയ്ക്കിടയിൽ തീരുമാനിക്കുമ്പോൾ ഈ ഘടകങ്ങൾ ശ്രദ്ധാപൂർവ്വം പരിഗണിക്കേണ്ടത് പ്രധാനമാണ് ഒപ്പം .

Dockerfile-ലെ COPY, ADD എന്നിവയെക്കുറിച്ചുള്ള പൊതുവായ ചോദ്യങ്ങളും ഉത്തരങ്ങളും

  1. യുടെ പ്രാഥമിക ഉപയോഗം എന്താണ് ഒരു Dockerfile-ൽ കമാൻഡ് ചെയ്യണോ?
  2. ദി ഹോസ്റ്റ് സിസ്റ്റത്തിൽ നിന്ന് ഡോക്കർ കണ്ടെയ്‌നറിലേക്ക് ലോക്കൽ ഫയലുകളും ഡയറക്‌ടറികളും പകർത്തുന്നതിനാണ് കമാൻഡ് പ്രാഥമികമായി ഉപയോഗിക്കുന്നത്.
  3. എപ്പോഴാണ് നിങ്ങൾ ഉപയോഗിക്കേണ്ടത് പകരം കമാൻഡ് ?
  4. നിങ്ങൾ ഉപയോഗിക്കണം നിങ്ങൾക്ക് ഒരു URL-ൽ നിന്ന് ഫയലുകൾ പകർത്തേണ്ടിവരുമ്പോൾ അല്ലെങ്കിൽ ബിൽഡ് പ്രോസസ്സിനിടെ കംപ്രസ് ചെയ്ത ഫയലുകൾ എക്‌സ്‌ട്രാക്‌റ്റ് ചെയ്യേണ്ടിവരുമ്പോൾ കമാൻഡ് ചെയ്യുക.
  5. ഉപയോഗിക്കുന്നതിൻ്റെ സുരക്ഷാ പ്രത്യാഘാതങ്ങൾ എന്തൊക്കെയാണ് കൽപ്പന?
  6. ദി കമാൻഡിന് സുരക്ഷാ അപകടസാധ്യതകൾ അവതരിപ്പിക്കാൻ കഴിയും, പ്രത്യേകിച്ചും റിമോട്ട് URL-കളിൽ നിന്ന് ഫയലുകൾ ഡൗൺലോഡ് ചെയ്യുമ്പോൾ, നിലവിലുള്ള ഫയലുകൾ പുനരാലേഖനം ചെയ്യാനോ കേടുപാടുകൾ വരുത്താനോ സാധ്യതയുണ്ട്.
  7. കഴിയുമോ കംപ്രസ് ചെയ്ത ഫയലുകൾ എക്‌സ്‌ട്രാക്റ്റ് ചെയ്യണോ?
  8. ഇല്ല, ദി കംപ്രസ് ചെയ്ത ഫയലുകൾ എക്‌സ്‌ട്രാക്‌റ്റുചെയ്യാനുള്ള കഴിവ് കമാൻഡിനില്ല; അത് അവരെ അതേപടി പകർത്തുന്നു.
  9. എങ്ങിനെയാണ് കംപ്രസ് ചെയ്ത ഫയലുകൾ വ്യത്യസ്തമായി കൈകാര്യം ചെയ്യുക ?
  10. ദി പോലുള്ള കംപ്രസ് ചെയ്ത ഫയലുകൾ കമാൻഡ് സ്വയമേവ എക്‌സ്‌ട്രാക്റ്റ് ചെയ്യുന്നു , , ഒപ്പം .bzip2 അവ കണ്ടെയ്നറിൽ ചേർക്കുമ്പോൾ.
  11. കൂടെ വൈൽഡ്കാർഡുകൾ ഉപയോഗിക്കാൻ സാധിക്കുമോ കൽപ്പന?
  12. അതെ, നിങ്ങൾക്ക് വൈൽഡ്കാർഡുകൾ ഉപയോഗിക്കാം ഒരു പാറ്റേണുമായി പൊരുത്തപ്പെടുന്ന ഒന്നിലധികം ഫയലുകളോ ഡയറക്ടറികളോ പകർത്താനുള്ള കമാൻഡ്.
  13. എന്നതിലേക്ക് ഒരു URL നൽകിയാൽ എന്ത് സംഭവിക്കും കമാൻഡ് ലഭ്യമല്ലേ?
  14. ഒരു URL നൽകിയിട്ടുണ്ടെങ്കിൽ കമാൻഡ് ലഭ്യമല്ല, ഡോക്കർ ബിൽഡ് പ്രോസസ്സ് പരാജയപ്പെടും.
  15. ലളിതവും പ്രാദേശികവുമായ ഫയൽ കോപ്പി പ്രവർത്തനത്തിന് നിങ്ങൾ ഏത് കമാൻഡ് ഉപയോഗിക്കണം?
  16. ലളിതമായ, പ്രാദേശിക ഫയൽ കോപ്പി പ്രവർത്തനങ്ങൾക്കായി, നിങ്ങൾ ഇത് ഉപയോഗിക്കണം കമാൻഡ് കൂടുതൽ ലളിതവും സുരക്ഷിതവുമാണ്.
  17. കഴിയുമോ ലോക്കൽ, റിമോട്ട് ഉറവിടങ്ങളിൽ നിന്ന് ഫയലുകൾ ചേർക്കാൻ കമാൻഡ് ഉപയോഗിക്കണോ?
  18. അതെ, ദി കമാൻഡിന് പ്രാദേശിക ഉറവിടങ്ങളിൽ നിന്നും വിദൂര URL-കളിൽ നിന്നും ഫയലുകൾ ചേർക്കാൻ കഴിയും, ഇത് ചില സാഹചര്യങ്ങളിൽ കൂടുതൽ വൈവിധ്യമാർന്നതാക്കുന്നു.

എപ്പോൾ ഉപയോഗിക്കണമെന്ന് മനസ്സിലാക്കുന്നു ഒപ്പം നിങ്ങളുടെ കണ്ടെയ്‌നർ ബിൽഡുകൾ ഒപ്റ്റിമൈസ് ചെയ്യുന്നതിന് നിങ്ങളുടെ ഡോക്കർഫയലിൽ അത്യാവശ്യമാണ്. അതേസമയം പ്രാദേശിക ഫയലുകൾക്ക് നേരായതും സുരക്ഷിതവുമാണ്, ADD കൂടുതൽ സങ്കീർണ്ണതയുടെയും സുരക്ഷാ ആശങ്കകളുടെയും ചെലവിൽ അധിക കഴിവുകൾ നൽകുന്നു. നിങ്ങളുടെ നിർദ്ദിഷ്ട ആവശ്യങ്ങൾ അടിസ്ഥാനമാക്കി ശരിയായ കമാൻഡ് തിരഞ്ഞെടുക്കുന്നത് നിങ്ങളുടെ ഡോക്കർ ഇമേജുകളുടെ കാര്യക്ഷമതയും സുരക്ഷയും വർദ്ധിപ്പിക്കും.