டோக்கர் மற்றும் விர்ச்சுவல் மெஷின் அறிமுகம்
டோக்கர் மற்றும் விர்ச்சுவல் மெஷின்கள் (விஎம்கள்) இரண்டும் பயன்பாடுகளை வரிசைப்படுத்துவதற்கான பிரபலமான கருவிகள், ஆனால் அவை அடிப்படையில் வேறுபட்ட வழிகளில் செயல்படுகின்றன. பொதுவாக VMகளுடன் தொடர்புடைய மேல்நிலை இல்லாமல் ஒரு முழுமையான கோப்பு முறைமை, தனிமைப்படுத்தப்பட்ட நெட்வொர்க்கிங் மற்றும் பிற அம்சங்களை டோக்கர் எவ்வாறு வழங்க முடியும் என்பதில் பல டெவலப்பர்கள் தங்களைக் குழப்பிக் கொள்கின்றனர்.
இந்தக் கட்டுரை டோக்கர் மற்றும் பாரம்பரிய மெய்நிகர் இயந்திரங்களுக்கு இடையிலான வேறுபாடுகளை தெளிவுபடுத்துவதை நோக்கமாகக் கொண்டுள்ளது, டோக்கர் ஏன் மிகவும் இலகுவானதாகவும் மென்பொருளைப் பயன்படுத்துவதற்கு எளிதாகவும் கருதப்படுகிறது என்பதை விளக்குகிறது. உற்பத்திச் சூழல்களில் டோக்கரைப் பயன்படுத்துவதன் அடிப்படையான தொழில்நுட்பங்கள் மற்றும் நடைமுறைப் பலன்களை நாங்கள் ஆராய்வோம்.
| கட்டளை | விளக்கம் |
|---|---|
| FROM | டோக்கர் கொள்கலனை உருவாக்குவதற்குப் பயன்படுத்த வேண்டிய அடிப்படைப் படத்தைக் குறிப்பிடுகிறது. |
| WORKDIR | டோக்கர் கொள்கலனுக்குள் வேலை செய்யும் கோப்பகத்தை அமைக்கிறது. |
| COPY | ஹோஸ்ட் இயந்திரத்திலிருந்து கோப்புகள் அல்லது கோப்பகங்களை டோக்கர் கொள்கலனில் நகலெடுக்கிறது. |
| RUN | உருவாக்க செயல்முறையின் போது டோக்கர் கொள்கலனில் ஒரு கட்டளையை இயக்குகிறது. |
| EXPOSE | இயக்க நேரத்தில் குறிப்பிட்ட நெட்வொர்க் போர்ட்களில் கொள்கலன் கேட்கிறது என்பதை டோக்கருக்குத் தெரிவிக்கிறது. |
| CMD | டோக்கர் கண்டெய்னர் தொடங்கும் போது அதற்குள் இயங்குவதற்கான கட்டளையைக் குறிப்பிடுகிறது. |
| config.vm.box | Vagrant மெய்நிகர் இயந்திரத்திற்கு பயன்படுத்த அடிப்படை பெட்டியை வரையறுக்கிறது. |
| config.vm.network | ஹோஸ்டில் இருந்து VM க்கு போர்ட்களை அனுப்புவது போன்ற நெட்வொர்க் அமைப்புகளை உள்ளமைக்கிறது. |
| config.vm.provision | அமைவின் போது ஷெல் ஸ்கிரிப்ட்களை இயக்குவது போன்ற மெய்நிகர் இயந்திரத்தை எவ்வாறு வழங்குவது என்பதைக் குறிப்பிடுகிறது. |
Dockerfile மற்றும் Vagrantfile ஐ ஆய்வு செய்தல்
வழங்கப்பட்ட எடுத்துக்காட்டுகளில், Node.js பயன்பாட்டைப் பயன்படுத்துவதற்கு Dockerfile ஐ எவ்வாறு உருவாக்குவது என்பதை நாங்கள் முதலில் காண்பித்தோம். டோக்கர்ஃபைல் அடிப்படை படத்தைக் குறிப்பிடுவதன் மூலம் தொடங்குகிறது FROM கட்டளை, இந்த வழக்கில், அதிகாரப்பூர்வ Node.js இயக்க நேரத்தைப் பயன்படுத்துகிறது. கொள்கலனுக்குள் வேலை செய்யும் கோப்பகத்தை அமைப்பது இதன் மூலம் அடையப்படுகிறது WORKDIR கட்டளை, குறிப்பிட்ட கோப்பகத்தில் அடுத்தடுத்த கட்டளைகள் செயல்படுத்தப்படுவதை உறுதி செய்கிறது. தி COPY தொகுப்பு.json கோப்புகள் மற்றும் பயன்பாட்டுக் குறியீட்டை கொள்கலனில் மாற்ற கட்டளை பயன்படுத்தப்படுகிறது. தி RUN கட்டளை பின்னர் கொள்கலனுக்குள் தேவையான சார்புகளை நிறுவுகிறது. பயன்பாட்டைப் பயன்படுத்தி இயங்கும் போர்ட்டை நாங்கள் அம்பலப்படுத்துகிறோம் EXPOSE கட்டளை, இறுதியாக, தி CMD கொள்கலன் தொடங்கும் போது பயன்பாட்டை இயக்குவதற்கான கட்டளையை கட்டளை வரையறுக்கிறது.
Vagrantfile உதாரணத்திற்கு, அடிப்படை பெட்டியைக் குறிப்பிடுவதன் மூலம் கட்டமைப்பு தொடங்குகிறது config.vm.box கட்டளை, இங்கே உபுண்டு 20.04 ஐப் பயன்படுத்துகிறது. நெட்வொர்க் அமைப்புகள் இதைப் பயன்படுத்தி கட்டமைக்கப்படுகின்றன config.vm.network கட்டளை, இது ஹோஸ்டில் உள்ள போர்ட் 8080 ஐ கெஸ்ட் VM இல் போர்ட் 80 க்கு அனுப்புகிறது, இது VM இல் இயங்கும் சேவைகளுக்கு வெளிப்புற அணுகலை அனுமதிக்கிறது. தி config.vm.provision கட்டளை ஒரு ஷெல் ஸ்கிரிப்டை இயக்க பயன்படுகிறது, இது தொகுப்பு பட்டியலை மேம்படுத்துகிறது மற்றும் Apache2 ஐ நிறுவுகிறது, தேவையான மென்பொருளுடன் VM ஐ வழங்குகிறது. இந்த கட்டளைகள் ஒரு VM சூழலை அமைப்பதற்கான அடிப்படை படிகளைக் காட்டுகின்றன, டோக்கர் வழங்கிய கொள்கலன் சூழலுடன் ஒப்பிடும்போது மிகவும் பாரம்பரியமான அணுகுமுறையை வழங்குகிறது.
Node.js பயன்பாட்டு வரிசைப்படுத்தலுக்கான டாக்கர்ஃபைலை உருவாக்குதல்
இந்த உதாரணம், Node.js பயன்பாட்டிற்கான Dockerfile ஐ எவ்வாறு உருவாக்குவது என்பதை விளக்குகிறது, டோக்கர் கொள்கலனுக்குள் பயன்பாட்டை உருவாக்க மற்றும் இயக்குவதற்கான படிகளைக் காட்டுகிறது.
# Use an official Node.js runtime as a parent imageFROM node:14# Set the working directory inside the containerWORKDIR /usr/src/app# Copy package.json and package-lock.json to the containerCOPY package*.json ./# Install the application dependencies inside the containerRUN npm install# Copy the rest of the application code to the containerCOPY . .# Expose the port the app runs onEXPOSE 8080# Define the command to run the appCMD ["node", "app.js"]
வேக்ரண்டைப் பயன்படுத்தி மெய்நிகர் இயந்திரத்தை அமைத்தல்
VM சூழலை வரையறுத்து கட்டமைக்கும் செயல்முறையை விளக்கி, எளிய Vagrantfile மூலம் Vagrant ஐப் பயன்படுத்தி ஒரு மெய்நிகர் இயந்திரத்தை எவ்வாறு அமைப்பது என்பதை இந்த எடுத்துக்காட்டு காட்டுகிறது.
# -*- mode: ruby -*-# vi: set ft=ruby :# All Vagrant configuration is done below. The "2" in Vagrant.configure# configures the configuration version (we support older styles for# backwards compatibility). Please don't change it unless you know what# you're doing.Vagrant.configure("2") do |config|# Use Ubuntu 20.04 as the base boxconfig.vm.box = "ubuntu/focal64"# Forward port 8080 on the host to port 80 on the guestconfig.vm.network "forwarded_port", guest: 80, host: 8080# Provision the VM with a shell scriptconfig.vm.provision "shell", inline: <<-SHELLsudo apt-get updatesudo apt-get install -y apache2SHELLend
டோக்கர் மற்றும் மெய்நிகர் இயந்திரங்களைப் புரிந்துகொள்வது
டோக்கர் மற்றும் மெய்நிகர் இயந்திரங்கள் (விஎம்கள்) இடையே உள்ள முக்கிய வேறுபாடுகளில் ஒன்று, அவை கணினி வளங்களை எவ்வாறு பயன்படுத்துகின்றன என்பதில் உள்ளது. VMகள் ஹைப்பர்வைசரில் இயங்குகின்றன, இது வன்பொருளைப் பின்பற்றுகிறது மற்றும் பல இயக்க முறைமைகளை ஹோஸ்ட் கணினியில் ஒரே நேரத்தில் இயக்க அனுமதிக்கிறது. இதற்கு ஒவ்வொரு VM க்கும் ஒரு முழு விருந்தினர் இயக்க முறைமை, அதன் சொந்த நூலகங்கள் மற்றும் பைனரிகள் தேவை. இது குறிப்பிடத்தக்க கணினி வளங்களை பயன்படுத்துவதோடு மட்டுமல்லாமல், வரிசைப்படுத்தல் மற்றும் பராமரிப்பின் ஒட்டுமொத்த அளவு மற்றும் சிக்கலான தன்மையையும் அதிகரிக்கிறது.
இதற்கு நேர்மாறாக, டோக்கர் கன்டெய்னரைசேஷன் தொழில்நுட்பத்தை மேம்படுத்துகிறது, இது பல கொள்கலன்களை ஒரே இயக்க முறைமை கர்னலைப் பகிர அனுமதிக்கிறது. ஒவ்வொரு கொள்கலனும் பயனர் இடத்தில் தனிமைப்படுத்தப்பட்ட செயல்முறையாக இயங்குகிறது. VMகளுடன் ஒப்பிடும்போது கொள்கலன்கள் மிகவும் இலகுவாகவும் வேகமாகவும் தொடங்குகின்றன, ஏனெனில் அவை முழு OS ஐயும் துவக்கத் தேவையில்லை. டோக்கர் ஒரு அடுக்கு கோப்பு முறைமை மூலம் கோப்பு முறைமை தனிமைப்படுத்தலை அடைகிறது, அங்கு ஒவ்வொரு கொள்கலனுக்கும் ஒரு அடிப்படை படத்தின் மேல் அதன் சொந்த கோப்பு முறைமை அடுக்கு உள்ளது. நெட்வொர்க் தனிமைப்படுத்தல் நேம்ஸ்பேஸ்களைப் பயன்படுத்தி கையாளப்படுகிறது, இது VMகளுடன் தொடர்புடைய மேல்நிலை இல்லாமல் ஒவ்வொரு கொள்கலனுக்கும் தனிமைப்படுத்தப்பட்ட நெட்வொர்க்கிங் சூழல்களை வழங்க டோக்கரை அனுமதிக்கிறது.
Docker மற்றும் Virtual Machines பற்றி அடிக்கடி கேட்கப்படும் கேள்விகள்
- டோக்கருக்கும் விஎம்களுக்கும் உள்ள முதன்மை வேறுபாடு என்ன?
- ஹோஸ்ட் ஓஎஸ் கர்னலைப் பகிர டோக்கர் கண்டெய்னரைசேஷனைப் பயன்படுத்துகிறது, இது இலகுவாகவும் வேகமாகவும் ஆக்குகிறது, அதேசமயம் VM களுக்கு முழு விருந்தினர் OS மற்றும் ஹைப்பர்வைசர் தேவைப்படுகிறது.
- டோக்கர் கொள்கலன்கள் ஏன் மிகவும் திறமையானதாகக் கருதப்படுகின்றன?
- கொள்கலன்கள் ஹோஸ்ட் OS கர்னலைப் பகிர்ந்து கொள்கின்றன மற்றும் குறைந்த பட்ச மேல்நிலையைக் கொண்டுள்ளன, இது வேகமான தொடக்க நேரத்தையும் திறமையான வளப் பயன்பாட்டையும் அனுமதிக்கிறது.
- கோப்பு முறைமை தனிமைப்படுத்தலை டோக்கர் எவ்வாறு அடைகிறார்?
- டோக்கர் ஒரு அடுக்கு கோப்பு முறைமையைப் பயன்படுத்துகிறது, அங்கு ஒவ்வொரு கொள்கலனும் ஒரு அடிப்படை படத்தின் மேல் அதன் சொந்த கோப்பு முறைமை அடுக்கைக் கொண்டுள்ளது.
- VMகளின் சூழலில் ஹைப்பர்வைசர் என்றால் என்ன?
- ஹைப்பர்வைசர் என்பது வன்பொருளைப் பின்பற்றும் மென்பொருளாகும், இது பல இயக்க முறைமைகளை ஒரே ஹோஸ்ட் கணினியில் ஒரே நேரத்தில் இயக்க அனுமதிக்கிறது.
- நெட்வொர்க்கிங் தனிமைப்படுத்தலை டோக்கர் எவ்வாறு கையாள்கிறது?
- ஒவ்வொரு கொள்கலனுக்கும் தனிமைப்படுத்தப்பட்ட நெட்வொர்க்கிங் சூழல்களை வழங்க டோக்கர் பெயர்வெளிகளைப் பயன்படுத்துகிறது.
- VM ஐ விட டோக்கர் படத்திற்கு மென்பொருளை வரிசைப்படுத்துவது ஏன் எளிதானது?
- டோக்கர் படங்கள் அனைத்து சார்புகளையும் உள்ளமைவுகளையும் உள்ளடக்கி, வெவ்வேறு சூழல்களில் நிலைத்தன்மையை உறுதி செய்கிறது.
- டோக்கரின் சில பொதுவான பயன்பாட்டு வழக்குகள் யாவை?
- டோக்கர் பொதுவாக மைக்ரோ சர்வீஸ் கட்டமைப்பு, தொடர்ச்சியான ஒருங்கிணைப்பு/தொடர்ச்சியான வரிசைப்படுத்தல் (CI/CD) மற்றும் தனிமைப்படுத்தப்பட்ட வளர்ச்சி சூழல்களுக்குப் பயன்படுத்தப்படுகிறது.
- டோக்கர் கண்டெய்னர்கள் ஏதேனும் OS இல் இயங்க முடியுமா?
- டோக்கரை ஆதரிக்கும் எந்த ஓஎஸ்ஸிலும் டோக்கர் கண்டெய்னர்கள் இயங்கலாம், ஆனால் அவை ஹோஸ்ட் ஓஎஸ் கர்னலைப் பகிர்ந்து கொள்கின்றன.
- டோக்கரில் அடிப்படை படம் என்றால் என்ன?
- பெரும்பாலும் OS மற்றும் அடிப்படை சார்புகள் உட்பட, டோக்கர் கொள்கலன்களை உருவாக்குவதற்கான தொடக்கப் புள்ளி அடிப்படைப் படமாகும்.
டோக்கர் மற்றும் விர்ச்சுவல் மெஷின்களின் சுருக்கம்
டோக்கர் மற்றும் மெய்நிகர் இயந்திரங்களை ஒப்பிடுகையில், முதன்மை வேறுபாடு அவற்றின் வள பயன்பாடு மற்றும் வரிசைப்படுத்தல் செயல்திறனில் உள்ளது. மெய்நிகர் இயந்திரங்கள் முழு விருந்தினர் இயக்க முறைமை மற்றும் ஹைப்பர்வைசருடன் செயல்படுகின்றன, இது அதிக வள நுகர்வுக்கு வழிவகுக்கிறது. மாறாக, டோக்கர் கொள்கலன்கள் ஹோஸ்ட் ஓஎஸ் கர்னலைப் பகிர்ந்து கொள்கின்றன, இதன் விளைவாக அதிக எடை குறைந்த மற்றும் சுறுசுறுப்பான தீர்வு கிடைக்கும். டோக்கர் ஒரு அடுக்கு கோப்பு முறைமை மற்றும் நெட்வொர்க்கிங் பெயர்வெளிகள் மூலம் தனிமைப்படுத்தப்பட்ட சூழல்களை அடைகிறது, இது தொடர்புடைய மேல்நிலை இல்லாமல் VM களுக்கு ஒத்த செயல்பாடுகளை வழங்க அனுமதிக்கிறது. இது டோக்கர் படங்களுக்கு மென்பொருளைப் பயன்படுத்துவதை மிகவும் திறமையானதாகவும், சீரானதாகவும், பல்வேறு தயாரிப்பு சூழல்களில் நிர்வகிக்க எளிதாகவும் செய்கிறது.
டோக்கர் மற்றும் மெய்நிகர் இயந்திரங்கள் பற்றிய இறுதி எண்ணங்கள்
முடிவில், டோக்கரின் கன்டெய்னரைசேஷன் பயன்பாடு, வள பயன்பாட்டைக் குறைப்பதன் மூலமும், வரிசைப்படுத்தல் செயல்முறைகளை எளிதாக்குவதன் மூலமும் பாரம்பரிய மெய்நிகர் இயந்திரங்களை விட குறிப்பிடத்தக்க நன்மையை வழங்குகிறது. ஹோஸ்ட் ஓஎஸ் கர்னலைப் பகிர்வதன் மூலமும், தனிமைப்படுத்தப்பட்ட கோப்பு முறைமைகள் மற்றும் நெட்வொர்க்கிங்கைப் பயன்படுத்துவதன் மூலமும், நவீன பயன்பாட்டு வரிசைப்படுத்தலுக்கு டோக்கர் ஒரு வலுவான மற்றும் இலகுரக தீர்வை வழங்குகிறது. இந்த வேறுபாடுகளைப் புரிந்துகொள்வது டெவலப்பர்கள் தங்கள் தேவைகளுக்கு சரியான கருவியைத் தேர்வுசெய்ய உதவும், திறமையான மற்றும் அளவிடக்கூடிய பயன்பாட்டு நிர்வாகத்தை உறுதிப்படுத்துகிறது.