Docker என்றால் என்ன? Containers, non-developers-க்கான விளக்கம்
Docker என்பது ஒரு ஆப்பை அது இயங்கத் தேவையான அனைத்துடனும் — சரியான நிரலாக்க மொழிப் பதிப்பு, libraries, system கருவிகள், அமைப்புகள் — container எனப்படும் ஒரு தரநிலை அலகாகத் தொகுக்கும் கருவி. டெவலப்பரின் laptop-இலும், சோதனை server-இலும், cloud host-இலும் container ஒரே மாதிரி இயங்கும்; இதன் மூலம் “ஆனால் என் கணினியில் வேலை செய்தது” என்ற பழைய பிரச்சனை முடிவுக்கு வருகிறது. Container-ஐ உருவாக்கும் செய்முறை Dockerfile என்ற குறுகிய உரைக் கோப்பில் இருக்கும்.
AI மூலம் உருவாக்கும்போது Docker ஏன் முக்கியம்
உங்கள் ஆப்புக்கு backend இருந்தால் — Python, Node, C# அல்லது Java-இல் ஒரு API — அதற்குச் சரியான மென்பொருள்கள் நிறுவப்பட்ட ஒரு இடத்தில் அது இயங்க வேண்டும். அதை மீண்டும் மீண்டும் நம்பகமாகச் செய்யும் பொதுவான வழி Docker.
- Backends-ஐ deploy செய்வது. Mythex உட்பட பல hosts, Dockerfile-இலிருந்து container-ஐ உருவாக்கி backends-ஐ deploy செய்கின்றன. Mythex-இல் “C# Web API” அல்லது “Java backend” கேட்டால், ஆப்புடன் ஒரு Dockerfile கிடைக்கும்; Publish image-ஐ உருவாக்கி deploy செய்யும் (API backends).
- ஒரு தளத்திலிருந்து வெளியேறுவது. AI-யால் உருவாக்கப்பட்ட ஆப்பை ஏற்றுமதி செய்தால், Dockerfile அதை வேறு host-இல் இயக்குவதை எளிதாக்கும். AI-built ஆப்பை ஏற்றுமதி செய்து சொந்தமாக இயக்குவது எப்படி பார்க்கவும்.
- டெவலப்பர்களுடன் வேலை செய்வது. உங்கள் project-இல் சேரும் ஒரு டெவலப்பர், எல்லாவற்றையும் நிறுவ ஒரு நாள் செலவிடாமல், ஒன்றிரண்டு கட்டளைகளில் முழு ஆப்பையும் தொடங்கலாம்.
ஒரு அன்றாட உவமை: கப்பல் கொள்கலன்கள்
தரநிலை கப்பல் கொள்கலன்களுக்கு முன், சரக்கு ஒவ்வொன்றாக — மூட்டைகள், பீப்பாய்கள், பெட்டிகள் — ஏற்றப்பட்டது; ஒவ்வொரு துறைமுகமும் அதை வேறுவிதமாகக் கையாண்டது. தரநிலை எஃகு கொள்கலன் அதை மாற்றியது: ஒரு முறை அடைத்துவிடுங்கள், எந்தக் கப்பலும், கிரேனும், ரயிலும், லாரியும் உள்ளே என்ன என்று கவலைப்படாமல் நகர்த்தும்.
Docker மென்பொருளுக்கும் அதையே செய்கிறது:
- Dockerfile என்பது பொருட்கள் பட்டியலும் வழிமுறைகளும்.
- Image என்பது சீல் வைக்கப்பட்ட, அடைக்கப்பட்ட கொள்கலன்.
- இயங்கும் container என்பது அந்தப் பெட்டி ஒரு கப்பலில் வேலை செய்யும் நிலை — இங்கே ஒரு server.
- Docker Engine என்பது கிரேனும் கப்பலும்: எந்த container-ஐயும் இயக்கத் தெரிந்த server-இல் உள்ள மென்பொருள்.
Docker எப்படி வேலை செய்கிறது
| பகுதி | அது என்ன |
|---|---|
| Dockerfile | Image-ஐ உருவாக்கும் படிப்படியான வழிமுறைகள் கொண்ட உரைக் கோப்பு. |
| Image | படிக்க மட்டுமே முடியும் தொகுப்பு: operating system அடிப்படைகள், இயக்க நேரம், libraries, உங்கள் code. |
| Container | ஒரு image-இன் இயங்கும் நிகழ்வு; அதே இயந்திரத்தில் உள்ள மற்ற ஆப்களிலிருந்து தனிமைப்படுத்தப்பட்டது. |
| Registry | Images-ஐச் சேமித்துப் பகிரும் இடம்; Docker Hub அல்லது cloud வழங்குநரின் registry போன்றவை. |
| Docker Engine | Images-ஐ உருவாக்கும், containers-ஐ இயக்கும் பின்னணிச் சேவை. இலவசம் மற்றும் open source. |
| Docker Desktop | Mac, Windows, Linux-க்கான ஒரு செயலி; engine-ஐ வரைகலை இடைமுகத்துடன் சேர்த்து வழங்குகிறது. |
Containers vs virtual machines: ஒரு virtual machine தனக்கென சொந்த operating system கொண்ட தனி முழுக் கணினியைப் போல நடிக்கும்; அதனால் அது கனமானது, தொடங்க மெதுவானது. ஒரு container host-இன் operating system kernel-ஐப் பகிர்ந்து, ஆப்பையும் அதன் கோப்புகளையும் மட்டுமே தனிமைப்படுத்தும்; அதனால் பொதுவாக சில வினாடிகளில் தொடங்கி மிகக் குறைந்த memory பயன்படுத்தும். ஒரே server-இல் பல containers அருகருகே இயங்கலாம்.
ஒரு செயல்முறை எடுத்துக்காட்டு: ஒரு சிறிய Python API
உங்கள் AI builder ஒரு booking ஆப்புக்காக Python FastAPI backend உருவாக்கியது என்று வைத்துக்கொள்ளுங்கள். Dockerfile இப்படி இருக்கலாம்:
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
வரி வரியாக:
| வரி | அது என்ன செய்கிறது |
|---|---|
FROM python:3.12-slim | Python 3.12 ஏற்கனவே நிறுவப்பட்ட அதிகாரப்பூர்வ image-இலிருந்து தொடங்கு. |
WORKDIR /app | Container-இல் /app கோப்புறையில் வேலை செய். |
COPY requirements.txt . மற்றும் RUN pip install ... | Libraries பட்டியலை நகலெடுத்து அவற்றை நிறுவு. |
COPY . . | ஆப்பின் சொந்த code-ஐ நகலெடு. |
EXPOSE 8000 | ஆப் 8000 துறைமுகத்தில் கேட்கும் என்று குறிப்பிடு. |
CMD [...] | Container இயங்கும்போது web server-ஐத் தொடங்கும் கட்டளை. |
எளிய சொற்களில்: “Python 3.12-இல் தொடங்கு. requirements.txt-இல் பட்டியலிட்ட libraries-ஐ நிறுவு. Code-ஐ நகலெடு. Port 8000-இல் web server-ஐத் தொடங்கு.”
பின்னர் ஒரு டெவலப்பர் (அல்லது hosting தளம்) இரண்டு கட்டளைகளை இயக்குகிறார்:
docker build -t booking-api .
docker run -p 8000:8000 booking-api
முதலாவது image-ஐ உருவாக்கி அதற்கு booking-api என்று பெயரிடுகிறது. இரண்டாவது ஒரு container-ஐத் தொடங்கி, இயந்திரத்தின் 8000 துறைமுகத்தை container-இன் உள்ளே உள்ள 8000 துறைமுகத்துடன் இணைக்கிறது. API இப்போது இயங்குகிறது — Docker உள்ள எந்த server-இலும் அது அதே மாதிரி இயங்கும்.
Image-இல் இல்லாதது என்ன என்று கவனியுங்கள்: கடவுச்சொற்களும் API keys-உம். அவை container தொடங்கும்போது கொடுக்கப்படுகின்றன, environment variables மூலம்; அதனால் ஒரே image சோதனையிலும் உற்பத்தியிலும் வெவ்வேறு அமைப்புகளுடன் இயங்கலாம்.
முக்கிய சொற்கள்
| சொல் | பொருள் |
|---|---|
| Container | ஆப்பும் அதன் dependencies-உம் கொண்ட தனிமைப்படுத்தப்பட்ட, இயங்கும் தொகுப்பு. |
| Image | ஒரு container தொடங்கப்படும் வார்ப்புரு. |
| Base image | Dockerfile-இன் FROM வரியில் உள்ள தொடக்கப் புள்ளி, எடுத்துக்காட்டாக python:3.12-slim அல்லது node:22. |
| Layer | Dockerfile-இன் ஒவ்வொரு படியும் ஒரு cache செய்யப்பட்ட layer-ஐச் சேர்க்கும்; அது மறு build-ஐ வேகப்படுத்தும். |
| Port mapping | Host-இல் உள்ள ஒரு துறைமுகத்தை container-இன் உள்ளே உள்ள ஒரு துறைமுகத்துடன் இணைத்தல். |
| Volume | Container மாற்றப்பட்டாலும் தப்பிப் பிழைக்கும் சேமிப்பு. Containers தாமாகவே தூக்கி எறியக்கூடியவை. |
| Docker Compose | ஒன்றாக இயங்கும் பல containers-ஐ விவரிக்கும் கோப்பு, எடுத்துக்காட்டாக ஒரு API மற்றும் ஒரு database. |
| Kubernetes | பல servers-இல் பல containers-ஐ இயக்கும் அமைப்பு. பெரும்பாலான சிறிய ஆப்களுக்கு இது தேவையில்லை. |
பொதுவான தவறான புரிதல்கள்
- “Docker ஒரு virtual machine.” அது இலகுவானது: containers host-இன் kernel-ஐப் பகிர்கின்றன.
- “Container-இன் உள்ளே சேமித்த தரவு பாதுகாப்பானது.” Containers மாற்றி மாற்றப்படவே உருவாக்கப்பட்டவை. நீடிக்க வேண்டியவை — பயனர் தரவு, பதிவேற்றங்கள் — database, கோப்பு சேமிப்பு அல்லது volume-இல் இருக்க வேண்டும்.
- “இரகசியங்களை Dockerfile-இல் வைப்பது சரி, ஏனெனில் அது தனிப்பட்டது.” Images பகிரப்படும், registries-க்குத் தள்ளப்படும். Secrets-ஐ இயக்கும் நேரத்தில் கொடுங்கள்.
- “Docker ஒரு ஆப்பைப் பாதுகாப்பாக்கும்.” தனிமைப்படுத்தல் உதவும், ஆனால் காலாவதியான மென்பொருளையும் பலவீனமான அமைப்புகளையும் கொண்ட container இன்னும் பாதிக்கப்படக்கூடியதே.
- “ஒவ்வொரு ஆப்புக்கும் Docker தேவை.” ஒரு நிலையான தளம் அல்லது எளிய frontend பொதுவாக சாதாரண கோப்புகளாக hosting செய்யப்படும்; அதற்கு container எதுவும் தேவையில்லை.
- “Docker Desktop எல்லோருக்கும் இலவசம்.” Engine இலவசம்; Docker-இன் விதிமுறைகளின்படி பெரிய நிறுவனங்களுக்கு Docker Desktop-க்குப் பணம் செலுத்தும் சந்தா தேவை.
உங்கள் AI builder-இடம் கேட்க வேண்டியவை
- “இந்த ஆப்புக்கு Dockerfile தேவையா? அப்படியானால் ஒவ்வொரு வரியையும் எளிய தமிழில் விளக்கு.”
- “சிறிய, அதிகாரப்பூர்வ base image-ஐப் பயன்படுத்து; நிரலாக்க மொழிப் பதிப்பைப் பின் செய்.”
- “Secrets-ஐ image-இலிருந்து வெளியே வை. இயக்கும் நேரத்தில் environment variables-இலிருந்து படி.”
- “Uploads மற்றும் தரவு container-இன் உள்ளே அல்ல, database-இலோ கோப்பு சேமிப்பிலோ இருப்பதை உறுதிசெய்.”
- “ஒரு டெவலப்பர் frontend, API, database-ஐ ஒரே கட்டளையில் உள்ளூரில் இயக்கும் வகையில் Docker Compose கோப்பு சேர்.”
- “Host API உயிருடன் உள்ளதா என்று சொல்ல ஒரு health-check endpoint சேர்.”
Mythex-இல் Docker
Mythex-ஐப் பயன்படுத்த நீங்கள் Docker-ஐ நிறுவவோ இயக்கவோ தேவையில்லை. உங்கள் project ஒரு தனியார் cloud sandbox-இல் இயங்குகிறது; C#, Java, அல்லது தனிப்பயன் Node அல்லது Python சேவை போன்ற container தேவைப்படும் backend ஒன்றைக் கேட்கும்போது, Mythex ஆப்புடன் ஒரு Dockerfile-ஐ எழுதி, sandbox-இல் preview செய்து, நீங்கள் வெளியிடும்போது deploy செய்கிறது — hosting அமைக்க வேண்டியதில்லாமல் (தொழில்நுட்பம் எப்படித் தேர்வு செய்யப்படுகிறது). Pro-வில் project-ஐ ஏற்றுமதி செய்யலாம் அல்லது GitHub-உடன் ஒத்திசைக்கலாம்; அப்போது Dockerfile உங்களுடன் வரும். Backends மற்றும் frontends எப்படி ஒன்றாக வேலை செய்கின்றன என்று அறிய, frontend vs backend பார்க்கவும்.
கேள்விகள்
எளிய சொற்களில் Docker என்றால் என்ன?
Docker என்பது ஒரு ஆப்பை அது இயங்கத் தேவையான அனைத்துடனும் — நிரலாக்க மொழி இயக்க நேரம், libraries, அமைப்புகள் — container எனப்படும் ஒரு தரநிலை அலகாகத் தொகுக்கும் கருவி. Container laptop-இலும், சோதனை server-இலும், cloud host-இலும் ஒரே மாதிரி இயங்கும்.
Docker image-க்கும் container-க்கும் என்ன வேறுபாடு?
Image என்பது படிக்க மட்டுமே முடியும் தொகுக்கப்பட்ட வார்ப்புரு: Dockerfile-இலிருந்து உருவாக்கப்பட்ட ஆப்பும் அதன் dependencies-உம். Container என்பது அந்த image-இன் இயங்கும் நகல். ஒரே image-இலிருந்து பல containers தொடங்கலாம்.
Docker ஒரு virtual machine-ஆ?
இல்லை. Virtual machine தனக்கென சொந்த operating system கொண்ட ஒரு முழு கணினியைப் போலியாக உருவாக்கும். Containers host இயந்திரத்தின் operating system kernel-ஐப் பகிர்ந்து, ஆப்பை மட்டும் தனிமைப்படுத்தும்; அதனால் அவை வேகமாகத் தொடங்கி குறைந்த memory பயன்படுத்தும்.
Docker இலவசமா?
Docker Engine, அதாவது containers-ஐ இயக்கும் அடிப்படை, இலவசமும் open source-உம் ஆகும். செப்டம்பர் 2026 நிலவரப்படி, Docker-இன் விதிமுறைகளின்படி Docker Desktop வணிகரீதியற்ற open source திட்டங்களுக்கும், 250-க்கும் குறைவான ஊழியர்களும் ஆண்டுக்கு 10 மில்லியன் டாலருக்கும் குறைவான வருவாயும் உள்ள நிறுவனங்களுக்கும் இலவசம்; பெரிய நிறுவனங்களுக்குப் பணம் செலுத்தும் சந்தா தேவை.
AI மூலம் ஆப் உருவாக்க Docker கற்க வேண்டுமா?
பொதுவாக இல்லை. பல AI builders containers-ஐ உங்களுக்காகக் கையாளுகின்றன. Dockerfile என்றால் என்ன என்று தெரிந்திருப்பது உதவும்: backend எப்படித் தொகுக்கப்படுகிறது என்று புரிந்துகொள்ளவும், ஆப்பை ஏற்றுமதி செய்தால் வேறு host-இல் இயக்கவும் அது உதவும்.