Lessons
Get Docker
Introduction
Docker basic concepts
- What is a container?
- Container क्या होता है?
- What is an image?
- Docker Image क्या होती है?
- What is a registry?
- Docker Registry क्या है?
- What is Docker Compose?
- Docker Compose क्या है?
Docker Commands
Docker क्या है?
Docker एक ऐसा सॉफ्टवेयर प्लेटफ़ॉर्म है जो आपको अपने एप्लिकेशन और उसके सभी आवश्यक भागों को एक साथ Container में पैक करके चलाने की सुविधा देता है।
मतलब आप अपने App, Libraries, Configuration और Runtime को एक छोटे Container में रख सकते हैं, ताकि वह किसी भी सिस्टम पर एक जैसा चले।
Container क्या होता है?
Container एक हल्का (lightweight) और अलग-अलग (isolated) वातावरण है, जिसमें एप्लिकेशन चलाने के लिए ज़रूरी सब कुछ पहले से मौजूद होता है:
- एप्लिकेशन का कोड
- आवश्यक Libraries
- Dependencies (सहायक पैकेज)
- Configuration Files
Docker क्यों इस्तेमाल करें?
- “Works on my machine” समस्या खत्म: डेवलपर और सर्वर के वातावरण में फर्क हो सकता है, Docker सुनिश्चित करता है कि App हर मशीन पर समान चले।
- तेज़ Deployment: Container बनाकर आप App को किसी भी सर्वर पर जल्दी डिप्लॉय कर सकते हैं।
- Microservices के लिए उपयोगी: हर microservice अलग Container में चल सकता है, जिससे सिस्टम अधिक स्थिर और स्वतंत्र रहता है।
- हल्का और पोर्टेबल: Container VM के मुकाबले हल्का और कम संसाधन उपयोग करता है।
Docker के मुख्य घटक
- Docker Image: Template जिससे Container बनता है। उदाहरण: python:3.9, nginx, mysql
- Docker Container: Image का चल रहा रूप (Running Instance)।
- Dockerfile: Text File जिसमें लिखा होता है कि Image कैसे बनानी है। इसमें Base Image, Dependencies, और App Run Commands होते हैं।
- Docker Hub: Public Repository जहाँ हजारों Docker Images उपलब्ध हैं।
Docker कैसे काम करता है?
Dockerfile बनाइए, फिर Image बनाइए और Container रन कीजिए:
# Dockerfile Example FROM python:3.9 WORKDIR /app COPY . . RUN pip install -r requirements.txt CMD ["python", "app.py"] # Commands docker build -t myflaskapp . docker run -p 5000:5000 myflaskapp
Docker vs Virtual Machine (VM)
| विशेषता (Feature) | Docker Container | Virtual Machine |
|---|---|---|
| शुरू होने का समय | कुछ सेकंड | कई मिनट |
| आकार (Size) | बहुत छोटा (MBs) | बहुत बड़ा (GBs) |
| गति (Performance) | लगभग Native जैसी | धीमी |
| अलगाव (Isolation) | OS स्तर पर | पूरे OS स्तर पर |
| पोर्टेबिलिटी (Portability) | बहुत अधिक | सीमित |
Docker का उपयोग कहाँ होता है?
- Microservices Architecture
- Continuous Integration / Deployment (CI/CD)
- Cloud Deployment (AWS, Azure, GCP आदि)
- Testing और Development के लिए Isolated Environment बनाना
सारांश (Summary)
| बिंदु | विवरण |
|---|---|
| Docker क्या है? | Application को Container में चलाने का Platform |
| Container क्या है? | App और Dependencies के लिए अलग वातावरण |
| Docker क्यों? | समान व्यवहार, तेज़ Deployment, हल्का और पोर्टेबल |
| मुख्य घटक | Docker Image, Container, Dockerfile, Docker Hub |
| Encoding | OS-level isolation, lightweight execution |