Docker-ലേക്കുള്ള ആമുഖ ഗൈഡ്: നിങ്ങളുടെ ആപ്ലിക്കേഷനുകൾ കണ്ടെയ്നറൈസ് ചെയ്യാൻ വേഗത്തിൽ ആരംഭിക്കുക
2/18/2026
5 min read
```html\n
Docker-ലേക്കുള്ള ആമുഖ ഗൈഡ്: നിങ്ങളുടെ ആപ്ലിക്കേഷനുകൾ കണ്ടെയ്നറൈസ് ചെയ്യാൻ വേഗത്തിൽ ആരംഭിക്കുക
\n\nആധുനിക സോഫ്റ്റ്വെയർ വികസനത്തിലും വിന്യാസത്തിലും Docker ഒരു അവിഭാജ്യ ഘടകമായി മാറിയിരിക്കുന്നു. Kubernetes-നെക്കുറിച്ചുള്ള ചർച്ചകൾ വ്യാപകമാണെങ്കിലും, ആപ്ലിക്കേഷനുകൾ നിർമ്മിക്കുന്നതിനും, പരീക്ഷിക്കുന്നതിനും, വിന്യസിക്കുന്നതിനും പല കമ്പനികളും Docker-നെയാണ് പ്രധാനമായും ആശ്രയിക്കുന്നത്. ഈ ലേഖനം Docker-ലേക്ക് ഒരു ദ്രുത ആമുഖം നൽകുന്നു, അതിന്റെ പ്രധാന ആശയങ്ങൾ മനസിലാക്കുന്നു, കൂടാതെ നിങ്ങളുടെ ആപ്ലിക്കേഷനുകൾ കണ്ടെയ്നറൈസ് ചെയ്യാൻ സഹായിക്കുന്ന ഒരു പ്രായോഗിക ഉദാഹരണവും നൽകുന്നു.\n\n## Docker-ന്റെ പ്രധാന ആശയങ്ങൾ\n\nതുടങ്ങുന്നതിന് മുമ്പ്, Docker-ന്റെ ചില പ്രധാന ആശയങ്ങൾ മനസിലാക്കേണ്ടത് അത്യാവശ്യമാണ്:\n\n* **ഇമേജ് (Image):** ഒരു ഇമേജ് എന്നത് റീഡ്-ഒൺലി ടെംപ്ലേറ്റ് ആണ്. ഒരു ആപ്ലിക്കേഷൻ പ്രവർത്തിപ്പിക്കാൻ ആവശ്യമായ എല്ലാ കാര്യങ്ങളും ഇതിൽ അടങ്ങിയിരിക്കുന്നു: കോഡ്, റൺടൈം എൻവയോൺമെന്റ്, സിസ്റ്റം ടൂളുകൾ, ലൈബ്രറികൾ, ഡിപൻഡൻസികൾ. ഇത് ഒരു വെർച്വൽ മെഷീൻ ഇമേജിന് സമാനമാണ്, പക്ഷേ കൂടുതൽ ഭാരം കുറഞ്ഞതാണ്.\n\n* **കണ്ടെയ്നർ (Container):** ഒരു ഇമേജിൽ നിന്ന് നിർമ്മിച്ച ഒരു റണ്ണിംഗ് ഇൻസ്റ്റൻസ് ആണ് കണ്ടെയ്നർ. ഇത് ഇമേജിന്റെ ഒരു റൺടൈം ഉദാഹരണമാണ്, അതിൽ ആപ്ലിക്കേഷനും അതിന്റെ എല്ലാ ഡിപൻഡൻസികളും അടങ്ങിയിരിക്കുന്നു. കണ്ടെയ്നറുകൾ പരസ്പരം ഒറ്റപ്പെട്ടവയാണ്, അവയ്ക്ക് അവരവരുടെ ഫയൽ സിസ്റ്റം, പ്രോസസ്സുകൾ, നെറ്റ്വർക്ക് സ്പേസ് എന്നിവ ഉണ്ടായിരിക്കും.\n\n* **Docker Hub:** Docker Hub എന്നത് പൊതുവായ ഇമേജ് ശേഖരണിയാണ്, ഇവിടെ നിന്ന് നിങ്ങൾക്ക് മുൻകൂട്ടി നിർമ്മിച്ച ഇമേജുകൾ ഡൗൺലോഡ് ചെയ്യാനും നിങ്ങളുടെ സ്വന്തം ഇമേജുകൾ അപ്ലോഡ് ചെയ്യാനും കഴിയും. ഇത് GitHub-ന് സമാനമാണ്, പക്ഷേ Docker ഇമേജുകൾക്ക് മാത്രമുള്ളതാണ്.\n\n* **Dockerfile:** Dockerfile എന്നത് ഒരു ടെക്സ്റ്റ് ഫയലാണ്, അതിൽ Docker ഇമേജ് നിർമ്മിക്കുന്നതിനുള്ള എല്ലാ നിർദ്ദേശങ്ങളും അടങ്ങിയിരിക്കുന്നു. Dockerfile എഴുതുന്നതിലൂടെ, നിങ്ങൾക്ക് ഇമേജ് നിർമ്മാണ പ്രക്രിയ ഓട്ടോമേറ്റ് ചെയ്യാൻ കഴിയും.\n\n* **Docker Compose:** Docker Compose എന്നത് മൾട്ടി-കണ്ടെയ്നർ Docker ആപ്ലിക്കേഷനുകൾ നിർവചിക്കുന്നതിനും പ്രവർത്തിപ്പിക്കുന്നതിനുമുള്ള ഒരു ടൂളാണ്. YAML ഫയൽ ഉപയോഗിച്ച് ആപ്ലിക്കേഷന്റെ സേവനങ്ങൾ ക്രമീകരിക്കാനും ഒരൊറ്റ കമാൻഡ് ഉപയോഗിച്ച് എല്ലാ സേവനങ്ങളും ആരംഭിക്കാനും നിർത്താനും ഇത് നിങ്ങളെ അനുവദിക്കുന്നു.\n\n## Docker ഇൻസ്റ്റാൾ ചെയ്യുക\n\nആദ്യം, നിങ്ങൾ Docker ഇൻസ്റ്റാൾ ചെയ്യണം. Docker വിവിധ ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾക്കായി ഇൻസ്റ്റാളേഷൻ പാക്കേജുകൾ നൽകുന്നു. [Docker ഔദ്യോഗിക വെബ്സൈറ്റ്](https://www.docker.com/get-started/) സന്ദർശിച്ച്, അതിനനുസരിച്ചുള്ള നിർദ്ദേശങ്ങൾ പാലിച്ച് ഇൻസ്റ്റാൾ ചെയ്യുക.\n\nഇൻസ്റ്റാളേഷൻ പൂർത്തിയായിക്കഴിഞ്ഞാൽ, `docker --version` കമാൻഡ് പ്രവർത്തിപ്പിച്ച് Docker ശരിയായി ഇൻസ്റ്റാൾ ചെയ്തു എന്ന് ഉറപ്പാക്കുക.\n\n## ഒരു ലളിതമായ Python ആപ്ലിക്കേഷൻ കണ്ടെയ്നറൈസ് ചെയ്യുക\n\nഞങ്ങൾ ഒരു ലളിതമായ Python ആപ്ലിക്കേഷൻ ഉണ്ടാക്കുകയും Docker ഉപയോഗിച്ച് കണ്ടെയ്നറൈസ് ചെയ്യുകയും ചെയ്യും.\n\n### 1. Python ആപ്ലിക്കേഷൻ ഉണ്ടാക്കുക\n\n`app.py` എന്ന പേരിൽ ഒരു ഫയൽ ഉണ്ടാക്കുക, അതിൽ താഴെ പറയുന്ന കോഡ് ചേർക്കുക:\n\n```python\nfrom flask import Flask\napp = Flask(__name__)\n\n@app.route(\# ആപ്ലിക്കേഷൻ കോഡ് വർക്കിംഗ് ഡയറക്ടറിയിലേക്ക് പകർത്തുക COPY app.py . # പോർട്ട് 5000 എക്സ്പോസ് ചെയ്യുക EXPOSE 5000 # ആരംഭ കമാൻഡ് നിർവ്വചിക്കുക CMD ["python", "app.py"] ``` **Dockerfile വിശദീകരണം:** * `FROM python:3.9-slim-buster`: അടിസ്ഥാന ഇമേജ് Python 3.9- ൻ്റെ സ്ലിം പതിപ്പായി വ്യക്തമാക്കുന്നു. * `WORKDIR /app`: കണ്ടെയ്നറിനുള്ളിലെ വർക്കിംഗ് ഡയറക്ടറി `/app` ആയി സജ്ജമാക്കുന്നു. * `COPY requirements.txt .`: നിലവിലെ ഡയറക്ടറിയിലെ `requirements.txt` ഫയൽ കണ്ടെയ്നറിലെ `/app` ഡയറക്ടറിയിലേക്ക് പകർത്തുന്നു. * `RUN pip install --no-cache-dir -r requirements.txt`: കണ്ടെയ്നറിനുള്ളിൽ `pip` കമാൻഡ് പ്രവർത്തിപ്പിച്ച് `requirements.txt` ഫയലിൽ വ്യക്തമാക്കിയ ഡിപൻഡൻസികൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നു. `--no-cache-dir` പാരാമീറ്റർ ഇമേജിന്റെ വലുപ്പം കുറയ്ക്കാൻ സഹായിക്കും. * `COPY app.py .`: നിലവിലെ ഡയറക്ടറിയിലെ `app.py` ഫയൽ കണ്ടെയ്നറിലെ `/app` ഡയറക്ടറിയിലേക്ക് പകർത്തുന്നു. * `EXPOSE 5000`: കണ്ടെയ്നർ 5000 പോർട്ടിൽ ശ്രദ്ധിക്കുമെന്ന് പ്രഖ്യാപിക്കുന്നു. * `CMD ["python", "app.py"]`: കണ്ടെയ്നർ ആരംഭിക്കുമ്പോൾ എക്സിക്യൂട്ട് ചെയ്യേണ്ട കമാൻഡ് നിർവ്വചിക്കുന്നു. ### 4. Docker ഇമേജ് നിർമ്മിക്കുക `Dockerfile` അടങ്ങിയ ഡയറക്ടറിയിൽ, Docker ഇമേജ് നിർമ്മിക്കാൻ താഴെ പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക: ```bash docker build -t my-python-app . ``` * `docker build`: ഇമേജ് നിർമ്മിക്കാനുള്ള കമാൻഡ്. * `-t my-python-app`: ഇമേജിന് ഒരു പേര് നൽകുന്നു (`my-python-app`). * `.`: Dockerfile സ്ഥിതി ചെയ്യുന്ന ഡയറക്ടറി വ്യക്തമാക്കുന്നു (നിലവിലെ ഡയറക്ടറി). നിങ്ങളുടെ നെറ്റ്വർക്ക് വേഗതയും ഡിപൻഡൻസികളുടെ വലുപ്പവും അനുസരിച്ച് നിർമ്മാണ പ്രക്രിയക്ക് കുറച്ച് സമയമെടുത്തേക്കാം. ### 5. Docker കണ്ടെയ്നർ പ്രവർത്തിപ്പിക്കുക Docker കണ്ടെയ്നർ പ്രവർത്തിപ്പിക്കാൻ താഴെ പറയുന്ന കമാൻഡ് ഉപയോഗിക്കുക: ```bash docker run -d -p 5000:5000 my-python-app ``` * `docker run`: കണ്ടെയ്നർ പ്രവർത്തിപ്പിക്കാനുള്ള കമാൻഡ്. * `-d`: ഡിറ്റാച്ച്ഡ് മോഡിൽ കണ്ടെയ്നർ പ്രവർത്തിപ്പിക്കുന്നു (ബാക്ക്ഗ്രൗണ്ടിൽ പ്രവർത്തിക്കുന്നു). * `-p 5000:5000`: ഹോസ്റ്റ് മെഷീന്റെ 5000 പോർട്ട് കണ്ടെയ്നറിന്റെ 5000 പോർട്ടിലേക്ക് മാപ്പ് ചെയ്യുന്നു. * `my-python-app`: ഉപയോഗിക്കേണ്ട ഇമേജിന്റെ പേര് വ്യക്തമാക്കുന്നു. ### 6. ആപ്ലിക്കേഷൻ പരിശോധിക്കുക ബ്രൗസറിൽ `http://localhost:5000` സന്ദർശിക്കുമ്പോൾ, നിങ്ങൾക്ക് "Hello, Docker!" എന്ന് കാണാൻ കഴിയും. ### 7. കണ്ടെയ്നർ നിർത്തുകയും നീക്കം ചെയ്യുകയും ചെയ്യുക കണ്ടെയ്നർ നിർത്താൻ താഴെ പറയുന്ന കമാൻഡ് ഉപയോഗിക്കുക: ```bash docker stop ``` `` `docker ps` കമാൻഡ് ഉപയോഗിച്ച് കണ്ടെയ്നർ ഐഡി പരിശോധിക്കാൻ കഴിയും. കണ്ടെയ്നർ നീക്കം ചെയ്യാൻ താഴെ പറയുന്ന കമാൻഡ് ഉപയോഗിക്കുക: ```bash docker rm ``` ## Docker Compose-ലേക്ക് ഒരു ആമുഖം നിങ്ങളുടെ ആപ്ലിക്കേഷൻ ഒന്നിലധികം സേവനങ്ങൾ ചേർന്നതാണെങ്കിൽ, അവയെ നിയന്ത്രിക്കാൻ Docker Compose ഉപയോഗിക്കാം. ### 1. `docker-compose.yml` ഫയൽ ഉണ്ടാക്കുക `docker-compose.yml` എന്ന പേരിൽ ഒരു ഫയൽ ഉണ്ടാക്കി താഴെ പറയുന്നവ ചേർക്കുക: ```yaml version: "3.9" services: web: image: my-python-app ports: - "5000:5000" ``` **docker-compose.yml വിശദീകരണം:*** `version: "3.9"`: Docker Compose ഫയലിന്റെ പതിപ്പ് വ്യക്തമാക്കുന്നു. * `services`: ആപ്ലിക്കേഷന്റെ സേവനങ്ങൾ നിർവചിക്കുന്നു. * `web`: "web" എന്ന് പേരുള്ള ഒരു സേവനത്തെ നിർവചിക്കുന്നു. * `image: my-python-app`: സേവനത്തിനായി ഉപയോഗിക്കുന്ന ഇമേജ് വ്യക്തമാക്കുന്നു. * `ports`: പോർട്ട് മാപ്പിംഗ് നിർവചിക്കുന്നു. ### 2. ആപ്ലിക്കേഷൻ ആരംഭിക്കുക `docker-compose.yml` ഫയൽ അടങ്ങിയ ഡയറക്ടറിയിൽ, ആപ്ലിക്കേഷൻ ആരംഭിക്കുന്നതിന് താഴെ പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക: ```bash docker-compose up -d ``` * `docker-compose up`: ആപ്ലിക്കേഷൻ ആരംഭിക്കുന്നതിനുള്ള കമാൻഡ്. * `-d`: കണ്ടെയ്നറുകൾ വേർപെട്ട രീതിയിൽ (detached mode) പ്രവർത്തിപ്പിക്കുന്നു. ### 3. ആപ്ലിക്കേഷൻ നിർത്തുക ആപ്ലിക്കേഷൻ നിർത്താൻ താഴെ പറയുന്ന കമാൻഡ് ഉപയോഗിക്കുക: ```bash docker-compose down ``` ## Docker സുരക്ഷാ മികച്ച രീതികൾ ചർച്ചയിൽ നിന്ന് മനസ്സിലാക്കാവുന്നതുപോലെ, Docker ഇമേജുകളുടെ സുരക്ഷ ഒരു പ്രധാന പ്രശ്നമാണ്. Docker സുരക്ഷയ്ക്കായുള്ള ചില മികച്ച രീതികൾ ഇതാ: * **ഔദ്യോഗിക ഇമേജുകൾ ഉപയോഗിക്കുക:** സാധ്യമാകുമ്പോഴെല്ലാം ഔദ്യോഗികമായി നൽകിയിട്ടുള്ള ഇമേജുകൾ ഉപയോഗിക്കുക. ഈ ഇമേജുകൾ സാധാരണയായി സുരക്ഷാ സ്കാനിംഗിന് വിധേയമാക്കുകയും പരിപാലിക്കുകയും ചെയ്യുന്നു. * **ഇമേജ് കേടുപാടുകൾ സ്കാൻ ചെയ്യുക:** Trivy പോലുള്ള ടൂളുകൾ ഉപയോഗിച്ച് ഇമേജുകളിലെ അറിയപ്പെടുന്ന കേടുപാടുകൾ സ്കാൻ ചെയ്യുക, കൂടാതെ ഇമേജുകൾ കൃത്യ സമയത്ത് അപ്ഡേറ്റ് ചെയ്യുക. * **കുറഞ്ഞ അനുമതി തത്വം ഉപയോഗിക്കുക:** റൂട്ട് ഉപയോക്താവായി കണ്ടെയ്നറുകൾ പ്രവർത്തിപ്പിക്കുന്നത് ഒഴിവാക്കുക. * **കണ്ടെയ്നർ ഉറവിടങ്ങൾ പരിമിതപ്പെടുത്തുക:** cgroups ഉപയോഗിച്ച് കണ്ടെയ്നറുകളുടെ CPU, മെമ്മറി ഉപയോഗം പരിമിതപ്പെടുത്തുക. * **ഇമേജുകൾ പതിവായി അപ്ഡേറ്റ് ചെയ്യുക:** സുരക്ഷാ പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നതിന് ഇമേജുകൾ അപ്ഡേറ്റ് ആയി നിലനിർത്തുക. * **സുരക്ഷാ സ്കാനിംഗ് ടൂളുകൾ ഉപയോഗിക്കുക:** Snyk, Clair തുടങ്ങിയ ടൂളുകൾ നിങ്ങളുടെ CI/CD പ്രക്രിയയിൽ സംയോജിപ്പിച്ച് ഇമേജ് കേടുപാടുകൾ സ്വയമേവ സ്കാൻ ചെയ്യാൻ സാധിക്കും. ## നിഗമനം ഈ ലേഖനം Docker-ന്റെ ഒരു ദ്രുത ആമുഖ ഗൈഡ് നൽകുന്നു, ഇത് പ്രധാന ആശയങ്ങൾ, ഇൻസ്റ്റാളേഷൻ ഘട്ടങ്ങൾ, കൂടാതെ ഒരു ലളിതമായ Python ആപ്ലിക്കേഷന്റെ കണ്ടെയ്നറൈസേഷൻ ഉദാഹരണം എന്നിവ ഉൾക്കൊള്ളുന്നു. ഈ അടിസ്ഥാനകാര്യങ്ങൾ പഠിക്കുന്നതിലൂടെ, നിങ്ങളുടെ ആപ്ലിക്കേഷനുകൾ നിർമ്മിക്കാനും, പരീക്ഷിക്കാനും വിന്യസിക്കാനും Docker ഉപയോഗിച്ച് തുടങ്ങാനാകും. സുരക്ഷ വളരെ പ്രധാനമാണെന്ന് ഓർക്കുക, Docker ഇമേജുകളുടെ സുരക്ഷയിൽ എപ്പോഴും ശ്രദ്ധിക്കുക, നിങ്ങളുടെ ആപ്ലിക്കേഷനുകളെ സംരക്ഷിക്കാൻ ഉചിതമായ നടപടികൾ കൈക്കൊള്ളുക. Kubernetes വലിയ തോതിലുള്ള കണ്ടെയ്നർ ഓർക്കസ്ട്രേഷനിൽ ശക്തമാണെങ്കിലും, പല സാഹചര്യങ്ങളിലും Docker ലളിതവും ഫലപ്രദവുമായ ഒരു പരിഹാരമാണ്. Docker-ൽ പ്രാവീണ്യം നേടുന്നതിലൂടെ, ആധുനിക സോഫ്റ്റ്വെയർ വികസനത്തിൻ്റെയും വിന്യാസത്തിൻ്റെയും വെല്ലുവിളികളെ നിങ്ങൾക്ക് നന്നായി നേരിടാൻ കഴിയും.Published in Technology





