डॉकर (Docker) परिचय मार्गदर्शिका: तुमच्या ॲप्लिकेशनचे कंटेनरीकरण (Containerization) झटपट सुरू करा
डॉकर (Docker) परिचय मार्गदर्शिका: तुमच्या ॲप्लिकेशनचे कंटेनरीकरण (Containerization) झटपट सुरू करा\n\nडॉकर (Docker) हे आधुनिक सॉफ्टवेअर डेव्हलपमेंट (Software development) आणि डिप्लॉयमेंटमध्ये (Deployment) एक अविभाज्य भाग बनले आहे. Kubernetes बद्दल खूप चर्चा असली तरी, डॉकर (Docker) हे अनेक कंपन्यांसाठी ॲप्लिकेशन्स (Applications) तयार करणे, टेस्ट (Test) करणे आणि डिप्लॉय (Deploy) करण्याचे आवडते साधन आहे. हा लेख तुम्हाला डॉकर (Docker)ची मूलभूत माहिती देईल, त्यातील मुख्य संकल्पना समजावून सांगेल आणि तुमच्या ॲप्लिकेशनचे कंटेनरीकरण (Containerization) करण्यासाठी एक उपयुक्त उदाहरण देईल.\n\n## डॉकरच्या (Docker) मुख्य संकल्पना\n\nसुरुवात करण्यापूर्वी, डॉकरच्या (Docker) काही मुख्य संकल्पना समजून घेणे महत्त्वाचे आहे:\n\n* इमेज (Image): इमेज (Image) हे रीड-ओन्ली (Read-only) टेम्पलेट (Template) आहे, ज्यामध्ये ॲप्लिकेशन (Application) चालवण्यासाठी आवश्यक असलेले सर्व काही असते: कोड (Code), रनटाइम एन्व्हायरनमेंट (Runtime environment), सिस्टीम टूल्स (System tools), लायब्ररी (Library) आणि डिपेंडेंसीज (Dependencies). हे व्हर्च्युअल मशीन इमेजसारखे (Virtual machine image) असते, पण त्यापेक्षा खूपच हलके असते.\n\n* कंटेनर (Container): कंटेनर (Container) हे इमेजमधून (Image) तयार केलेले रनिंग इन्स्टन्स (Running instance) आहे. हे इमेजचे (Image) रनटाइम इन्स्टन्स (Runtime instance) आहे, ज्यात ॲप्लिकेशन (Application) आणि त्याच्या सर्व डिपेंडेंसीज (Dependencies) असतात. कंटेनर (Container) एकमेकांपासून स्वतंत्र असतात आणि त्यांची स्वतःची फाइल सिस्टीम (File system), प्रोसेस (Process) आणि नेटवर्क स्पेस (Network space) असते.\n\n* डॉकर हब (Docker Hub): डॉकर हब (Docker Hub) हे पब्लिक इमेज रिपॉजिटरी (Public image repository) आहे, जिथून तुम्ही तयार इमेजेस (Images) डाउनलोड (Download) करू शकता आणि तुमच्या स्वतःच्या इमेजेस (Images) अपलोड (Upload) करू शकता. हे GitHub सारखेच आहे, पण ते फक्त डॉकर इमेजेससाठी (Docker images) आहे.\n\n* डॉकर फाइल (Dockerfile): डॉकर फाइल (Dockerfile) ही एक टेक्स्ट फाइल (Text file) आहे, ज्यामध्ये डॉकर इमेज (Docker image) तयार करण्यासाठीच्या सर्व सूचना असतात. डॉकर फाइल (Dockerfile) लिहून, तुम्ही इमेज (Image) तयार करण्याची प्रक्रिया ऑटोमेट (Automate) करू शकता.\n\n* डॉकर कंपोज (Docker Compose): डॉकर कंपोज (Docker Compose) हे मल्टी-कंटेनर डॉकर ॲप्लिकेशन्स (Multi-container Docker applications) डिफाइन (Define) आणि रन (Run) करण्यासाठीचे एक साधन आहे. हे तुम्हाला YAML फाइल वापरून ॲप्लिकेशनच्या (Application) सर्विसेस (Services) कॉन्फिगर (Configure) करण्याची परवानगी देते आणि नंतर तुम्ही एकच कमांड (Command) वापरून सर्व सर्विसेस (Services) सुरू किंवा बंद करू शकता.\n\n## डॉकर (Docker) इन्स्टॉलेशन (Installation)\n\nसर्वप्रथम, तुम्हाला डॉकर (Docker) इन्स्टॉल (Install) करणे आवश्यक आहे. डॉकरने (Docker) विविध ऑपरेटिंग सिस्टीमसाठी (Operating systems) इन्स्टॉलेशन पॅकेजेस (Installation packages) दिले आहेत. डॉकरच्या (Docker) अधिकृत वेबसाइटला भेट द्या आणि योग्य सूचनांचे पालन करून ते इन्स्टॉल (Install) करा.\n\nइन्स्टॉलेशन (Installation) पूर्ण झाल्यावर, docker --version कमांड (Command) वापरून डॉकर (Docker) योग्यरित्या इन्स्टॉल (Install) झाले आहे की नाही हे तपासा.\n\n## साध्या पायथन (Python) ॲप्लिकेशनचे (Application) कंटेनरीकरण (Containerization) करणे\n\nआता आपण एक साधे पायथन (Python) ॲप्लिकेशन (Application) तयार करू आणि डॉकर (Docker) वापरून त्याचे कंटेनरीकरण (Containerization) करू.\n\n### 1. पायथन (Python) ॲप्लिकेशन (Application) तयार करा\n\napp.py नावाची फाइल (File) तयार करा आणि त्यात खालील कोड (Code) टाका:\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` फाइलमध्ये नमूद केलेल्या डिपेंडेंसी (dependencies) इंस्टॉल करते. `--no-cache-dir` पॅरामीटर इमेजचा आकार कमी करू शकते.
* `COPY app.py .`: सध्याच्या डिरेक्टरीमधील `app.py` फाइल कंटेनरच्या `/app` डिरेक्टरीमध्ये कॉपी करते.
* `EXPOSE 5000`: कंटेनर 5000 पोर्टवर ऐकेल (listen) असे घोषित करते.
* `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 कंटेनर चालवण्यासाठी खालील कमांड वापरा:
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. कंटेनर थांबवा आणि काढा
कंटेनर थांबवण्यासाठी खालील कमांड वापरा:
docker stop
`` docker ps कमांड वापरून तपासता येते.
कंटेनर काढण्यासाठी खालील कमांड वापरा:
docker rm
Docker Compose ची सुरुवात
जर तुमचे ॲप्लिकेशन अनेक सेवांनी बनलेले असेल, तर तुम्ही त्यांचे व्यवस्थापन करण्यासाठी Docker Compose वापरू शकता.
1. docker-compose.yml फाइल तयार करा
docker-compose.yml नावाची फाइल तयार करा आणि खालील कंटेंट जोडा:
version: "3.9"
services:
web:
image: my-python-app
ports:
- "5000:5000"
docker-compose.yml स्पष्टीकरण:* version: "3.9": डॉकर कंपोझ फाईलची आवृत्ती निर्दिष्ट करते.
services: ॲप्लिकेशनच्या सेवा परिभाषित करते.web: "web" नावाची सेवा परिभाषित करते.image: my-python-app: सेवा वापरत असलेली इमेज निर्दिष्ट करते.ports: पोर्ट मॅपिंग परिभाषित करते.
2. ॲप्लिकेशन सुरू करणे
docker-compose.yml फाईल असलेल्या डिरेक्टरीमध्ये, ॲप्लिकेशन सुरू करण्यासाठी खालील कमांड चालवा:
docker-compose up -d
docker-compose up: ॲप्लिकेशन सुरू करण्याची कमांड.-d: कंटेनरला डिटॅच्ड मोडमध्ये चालवते.
3. ॲप्लिकेशन थांबवणे
ॲप्लिकेशन थांबवण्यासाठी खालील कमांड वापरा:
docker-compose down
डॉकर सुरक्षिततेच्या सर्वोत्तम पद्धती
चर्चेतून हे स्पष्ट होते की, डॉकर इमेजची सुरक्षा एक महत्त्वाचा मुद्दा आहे. येथे काही डॉकर सुरक्षिततेच्या सर्वोत्तम पद्धती आहेत:
- अधिकृत इमेज वापरा: शक्य असल्यास अधिकृतपणे पुरवलेल्या इमेज वापरा, ज्या सामान्यतः सुरक्षा स्कॅन केलेल्या आणि व्यवस्थित ठेवलेल्या असतात.
- इमेजमधील त्रुटींसाठी स्कॅन करा: Trivy सारख्या साधनांचा वापर करून इमेजमधील ज्ञात त्रुटींसाठी स्कॅन करा आणि इमेज वेळेवर अपडेट करा.
- किमान विशेषाधिकार तत्त्व वापरा: कंटेनर रूट यूजर म्हणून चालवणे टाळा.
- कंटेनर संसाधने मर्यादित करा: cgroups वापरून कंटेनरच्या CPU आणि मेमरी वापराला मर्यादा घाला.
- नियमितपणे इमेज अपडेट करा: सुरक्षिततेतील त्रुटी दूर करण्यासाठी इमेज अद्ययावत ठेवा.
- सुरक्षा स्कॅनिंग साधने वापरा: Snyk, Clair सारखी साधने तुमच्या CI/CD प्रक्रियेत समाकलित केली जाऊ शकतात, जी आपोआप इमेजमधील त्रुटी शोधतात.





