ஒரு Dockerfile இல் 'நகல்' மற்றும் 'ADD' கட்டளைகளுக்கு இடையே உள்ள வேறுபாடுகளைப் புரிந்துகொள்வது

Dockerfile

Dockerfile கட்டளைகள் விளக்கப்பட்டுள்ளன

Dockerfile இல் உள்ள 'COPY' மற்றும் 'ADD' கட்டளைகள் உங்கள் கொள்கலனின் கோப்பு முறைமையில் கோப்புகளை அறிமுகப்படுத்த உதவுகின்றன, ஆனால் அவை தனித்துவமான செயல்பாடுகள் மற்றும் சிறந்த பயன்பாட்டுக் காட்சிகளுடன் வருகின்றன. திறமையான Dockerfile நிர்வாகத்திற்கு இந்த வேறுபாடுகளைப் புரிந்துகொள்வது மற்றும் உங்கள் கண்டெய்னரைஸ் செய்யப்பட்ட பயன்பாடுகள் எதிர்பார்த்தபடி செயல்படுவதை உறுதிசெய்வது அவசியம்.

'நகல்' முதன்மையாக நேரடியான கோப்பு நகலெடுப்பிற்குப் பயன்படுத்தப்படும் போது, ​​'ADD' தொலைநிலை URLகளைக் கையாளுதல் மற்றும் சுருக்கப்பட்ட கோப்புகளைப் பிரித்தெடுத்தல் போன்ற கூடுதல் திறன்களை வழங்குகிறது. இந்தக் கட்டுரை ஒவ்வொரு கட்டளையின் நுணுக்கங்களையும் ஆராய்கிறது, உங்கள் டோக்கர் உருவாக்கங்களை மேம்படுத்துவதற்கு ஒன்றை மற்றொன்று எப்போது பயன்படுத்த வேண்டும் என்பதை உங்களுக்கு வழிகாட்டும்.

கட்டளை விளக்கம்
FROM உருவாக்கப்படும் டோக்கர் படத்திற்குப் பயன்படுத்துவதற்கான அடிப்படைப் படத்தைக் குறிப்பிடுகிறது.
WORKDIR கொள்கலனுக்குள் வேலை செய்யும் கோப்பகத்தை அமைக்கிறது.
COPY ஹோஸ்டில் இருந்து கொள்கலனின் கோப்பு முறைமைக்கு கோப்புகள் அல்லது கோப்பகங்களை நகலெடுக்கிறது.
ADD கன்டெய்னரின் கோப்பு அமைப்பில் கோப்புகள், கோப்பகங்கள் அல்லது தொலைநிலை URLகளைச் சேர்க்கிறது மற்றும் கோப்பு பிரித்தெடுப்பைக் கையாள முடியும்.
RUN கொள்கலனின் சூழலில் ஒரு கட்டளையை இயக்குகிறது.
EXPOSE இயக்க நேரத்தில் குறிப்பிட்ட நெட்வொர்க் போர்ட்களில் கொள்கலன் கேட்கிறது என்று டோக்கருக்குத் தெரிவிக்கிறது.

Dockerfile கட்டளைகளின் விரிவான விளக்கம்

முதல் ஸ்கிரிப்ட் அதன் பயன்பாட்டை நிரூபிக்கிறது ஒரு Dockerfile இல் கட்டளை. தி அறிவுறுத்தல் நேரடியானது மற்றும் ஹோஸ்ட் அமைப்பிலிருந்து கோப்புகள் அல்லது கோப்பகங்களை டோக்கர் கொள்கலனின் கோப்பு முறைமையில் நகலெடுக்கப் பயன்படுகிறது. இந்த எடுத்துக்காட்டில், ஸ்கிரிப்ட் தொடங்குகிறது கட்டளை, இது அடிப்படை படத்தை இவ்வாறு குறிப்பிடுகிறது python:3.8-slim-buster . தி கட்டளை கொள்கலனுக்குள் செயல்படும் கோப்பகத்தை அமைக்கிறது . இதைத் தொடர்ந்து தி கட்டளை, இது ஹோஸ்டில் உள்ள தற்போதைய கோப்பகத்தின் உள்ளடக்கங்களை நகலெடுக்கிறது /app கொள்கலனில் அடைவு. கோப்புகளை நகலெடுத்த பிறகு, தி இல் குறிப்பிடப்பட்டுள்ள தேவையான பைதான் தொகுப்புகளை நிறுவ கட்டளை பயன்படுத்தப்படுகிறது கோப்பு. இறுதியாக, தி கட்டளை போர்ட் 80 ஐ வெளி உலகிற்கு கிடைக்கச் செய்கிறது.

இதற்கு நேர்மாறாக, இரண்டாவது ஸ்கிரிப்ட் பயன்படுத்துவதை எடுத்துக்காட்டுகிறது ஒரு Dockerfile இல் கட்டளை. முதல் ஸ்கிரிப்டைப் போலவே, இது தொடங்குகிறது அடிப்படை படத்தை அமைக்க கட்டளை மற்றும் வேலை செய்யும் கோப்பகத்தை வரையறுக்க கட்டளை. இங்கே முக்கிய வேறுபாடு உள்ளது ADD கட்டளை, தொலைநிலை URL இலிருந்து கோப்புகளைச் சேர்க்கப் பயன்படுகிறது, இந்த விஷயத்தில், . தி கட்டளை கோப்புகளை நகலெடுப்பது மட்டுமல்லாமல், சுருக்கப்பட்ட கோப்புகளை தானாக பிரித்தெடுக்கும் திறனையும் கொண்டுள்ளது, இது அடுத்தடுத்து நிரூபிக்கப்பட்டுள்ளது. பிரித்தெடுக்கும் கட்டளை archive.tar.gz கோப்பு அடைவு. இதைத் தொடர்ந்து, தி கட்டளை தேவையான பைதான் தொகுப்புகளை நிறுவுகிறது, மற்றும் கட்டளை போர்ட் 80 கிடைக்கச் செய்கிறது.

டாக்கர்ஃபைலில் நகலைப் பயன்படுத்துதல்

Dockerfile உதாரணம்

# 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

ஒரு Dockerfile இல் ADD ஐப் பயன்படுத்துதல்

Dockerfile உதாரணம்

# 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

Dockerfile இல் நகல் மற்றும் ADD இன் ஆழமான பகுப்பாய்வு

இருவரும் போது மற்றும் கட்டளைகள் கோப்புகளை ஹோஸ்ட் அமைப்பிலிருந்து கொள்கலனின் கோப்பு முறைமைக்கு நகலெடுக்கும் நோக்கத்திற்காக சேவை செய்கின்றன, அவை தனித்தனி அம்சங்களைக் கொண்டுள்ளன மற்றும் அவை ஒவ்வொன்றும் வெவ்வேறு சூழ்நிலைகளில் பொருத்தமானதாக இருக்கும். தி கட்டளை எளிமையானது மற்றும் கணிக்கக்கூடியது. காப்பகங்களைப் பிரித்தெடுத்தல் அல்லது ரிமோட் கோப்புகளைப் பெறுதல் போன்ற கூடுதல் செயலாக்கம் தேவைப்படாத அடிப்படைக் கோப்பு நகலெடுப்பிற்கு இது சிறப்பாகப் பயன்படுத்தப்படுகிறது. இந்த கட்டளை உள்ளூர் கோப்புகள் மற்றும் கோப்பகங்கள் மட்டுமே கொள்கலனில் நகலெடுக்கப்படுவதை உறுதி செய்கிறது, இதனால் சுத்தமான மற்றும் பாதுகாப்பான உருவாக்க சூழலை பராமரிக்கிறது.

மறுபுறம், தி கட்டளை கூடுதல் செயல்பாட்டை வழங்குகிறது ஆனால் கூடுதல் சிக்கலான மற்றும் சாத்தியமான பாதுகாப்பு அபாயங்களுடன். தி கட்டளை 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கள் இரண்டிலிருந்தும் கோப்புகளைச் சேர்க்கலாம், இது சில சூழ்நிலைகளில் பல்துறை சார்ந்ததாக இருக்கும்.

எப்போது பயன்படுத்த வேண்டும் என்பதைப் புரிந்துகொள்வது மற்றும் உங்கள் கொள்கலன் உருவாக்கங்களை மேம்படுத்துவதற்கு உங்கள் Dockerfile இன்றியமையாதது. போது உள்ளூர் கோப்புகளுக்கு நேரடியானது மற்றும் பாதுகாப்பானது, ADD கூடுதல் சிக்கலான மற்றும் சாத்தியமான பாதுகாப்பு கவலைகளின் விலையில் கூடுதல் திறன்களை வழங்குகிறது. உங்கள் குறிப்பிட்ட தேவைகளின் அடிப்படையில் சரியான கட்டளையைத் தேர்ந்தெடுப்பது உங்கள் டோக்கர் படங்களின் செயல்திறனையும் பாதுகாப்பையும் மேம்படுத்தும்.