VPS पर Docker के साथ शुरुआत करना
ApexVPS टीम द्वारा लिखित • अंतिम अपडेट: जुलाई 2026 • 8 मिनट पढ़ें
VPS पर Docker चलाना खाली Ubuntu बॉक्स से मिनटों में चालू वेब ऐप, डेटाबेस या सेल्फ-होस्टेड सेवा तक पहुंचने का सबसे तेज़ तरीका है। सिस्टम पैकेज और विरोधाभासी डिपेंडेंसियों से जूझने के बजाय, आप एक प्री-बिल्ट इमेज खींचते हैं और एक कंटेनर शुरू करते हैं। यह शुरुआती गाइड आपको Ubuntu या Debian पर Docker और Docker Compose इंस्टॉल करने, आपको चाहिए मुख्य अवधारणाएं, अपना पहला कंटेनर लॉन्च करने, वॉल्यूम के साथ डेटा बनाए रखने, और कुछ सुरक्षा मूल बातें सिखाता है ताकि आप जले नहीं।
VPS पर Docker क्यों चलाएं?
एक वर्चुअल प्राइवेट सर्वर आपको पूर्ण रूट एक्सेस और समर्पित संसाधन देता है, जो कंटेनरों के लिए बिल्कुल वही है जो वे चाहते हैं। Docker इंस्टॉल होने पर आप कई अलग-अलग सेवाओं को साइड-बाय-साइड चला सकते हैं बिना वे एक-दूसरे के रास्ते में आए। हर कंटेनर अपनी लाइब्रेरी के साथ आता है, इसलिए एक Node ऐप, एक Postgres डेटाबेस, और एक रिवर्स प्रॉक्सी एक ही मशीन पर साफ-सुथरे ढंग से सह-अस्तित्व में रह सकते हैं। यदि आपका लक्ष्य VPS पर सेल्फ-होस्टिंग ऐप्स है — जैसे पर्सनल क्लाउड, विकी, या मीडिया सर्वर — तो Docker हर सेवा को व्यवस्थित और प्रतिलिपि योग्य बनाता है।
कंटेनर पोर्टेबल भी हैं। वही Compose फ़ाइल जो आपके लैपटॉप पर चलती है, वही सर्वर पर चलती है, जो क्लासिक "मेरी मशीन पर चलता है" समस्या को समाप्त करती है। गलती के बाद किसी सेवा को दोबारा बनाने में सेकंड लगते हैं, न कि पैकेज फिर से इंस्टॉल करने में आधा दिन।
सरल भाषा में मूल अवधारणाएँ
कमांड लाइन से पहले, चार प्रमुख भागों को जानना उपयोगी है:
- इमेज — एक केवल-पढ़ने योग्य टेम्पलेट जिसमें एक ऐप और उसे चलाने के लिए सब कुछ होता है। आप इमेज को Docker Hub जैसे रजिस्ट्री से डाउनलोड करते हैं। इसे एक स्नैपशॉट या क्लास समझें।
- कंटेनर — एक इमेज का चालू इंस्टेंस। आप कंटेनरों को खोल सकते हैं, रोक सकते हैं और हटा सकते हैं। कई कंटेनर एक ही इमेज से चल सकते हैं, जैसे क्लास से बनी वस्तुएँ।
- वॉल्यूम — स्थायी स्टोरेज जो कंटेनर के लेयर के बाहर रहती है। डेटाबेस और अपलोड की गई फ़ाइलों को सुरक्षित रखने के लिए वॉल्यूम का उपयोग होता है जब कंटेनर बदला जाता है।
- नेटवर्क — एक वर्चुअल नेटवर्क जो कंटेनरों को नाम से बात करने देता है। Docker हर Compose प्रोजेक्ट के लिए अपने आप एक बनाता है ताकि आपका ऐप आसानी से अपने डेटाबेस तक पहुँच सके।
चरण 1: Ubuntu या Debian पर Docker इंस्टॉल करें
Docker Engine इंस्टॉल करने का सबसे सरल, आधिकारिक तरीका convenience script है। अपने सर्वर पर SSH से कनेक्ट करें और चलाएँ:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
यह Docker Engine और Compose प्लगइन इंस्टॉल करता है। पूरा होने पर, वर्ज़न जाँचें:
docker --version
docker compose version
डिफ़ॉल्ट रूप से Docker को sudo की आवश्यकता होती है। इसे सामान्य उपयोगकर्ता के रूप में चलाने के लिए, अपने आप को docker समूह में जोड़ें, फिर लॉग आउट और लॉग इन करें ताकि परिवर्तन प्रभावी हो:
sudo usermod -aG docker $USER
Docker अधिकांश सिस्टम पर बूट पर भी शुरू होता है। यदि आपको कभी इसे मैन्युअल रूप से सक्षम करने की आवश्यकता हो:
sudo systemctl enable --now docker
क्या आप पैकेज-रिपॉजिटरी विधि पसंद करेंगे या अपने वितरण के लिए पूरे विवरण चाहेंगे? आधिकारिक Docker इंस्टॉलेशन दस्तावेज़ हर विकल्प को कवर करता है। ऊपर दिया गया convenience script नए VPS के लिए आदर्श है।
चरण 2: अपना पहला कंटेनर चलाएँ
क्लासिक hello-world इमेज के साथ इंस्टॉल का परीक्षण करें:
docker run hello-world
Docker इमेज खींचता है, इसे एक बार चलाता है, और पुष्टि संदेश प्रिंट करता है। अब कुछ ऐसा चलाएँ जो आप वास्तव में देख सकें। यह कमांड पृष्ठभूमि में एक Nginx वेब सर्वर शुरू करता है और होस्ट के पोर्ट 8080 को कंटेनर के पोर्ट 80 से मैप करता है:
docker run -d -p 8080:80 --name web nginx
ब्राउज़र में http://your-server-ip:8080 खोलें और आपको Nginx स्वागत पृष्ठ दिखाई देगा। कुछ फ़्लैग जानने योग्य हैं:
-dकंटेनर को पृष्ठभूमि में अलग करके चलाता है।-p 8080:80पोर्ट कोhost:containerके रूप में प्रकाशित करता है।--name webकंटेनर को यादगार नाम देता है।
क्या चल रहा है यह जाँचें, फिर समाप्त होने पर कंटेनर को रोकें और हटाएँ:
docker ps
docker stop web
docker rm web
कुछ ही कमांड अधिकांश दिन-प्रतिदिन के काम करते हैं। docker images आपके द्वारा खींची गई इमेजों की सूची दिखाता है, docker logs web समस्या निवारण के लिए कंटेनर का आउटपुट दिखाता है, और docker exec -it web bash चल रहे कंटेनर के अंदर एक शेल खोलता है। ये पाँच-छह कमांड सीखना छोटे सर्वर को प्रबंधित करने के लिए पर्याप्त है, और बाकी आवश्यकता के अनुसार देख सकते हैं।
चरण 3: मल्टी-कंटेनर ऐप्स के लिए Docker Compose का उपयोग करें
लंबे docker run कमांड टाइप करना जल्दी पुराना हो जाता है। Docker Compose आपको अपने पूरे स्टैक को एक फ़ाइल में वर्णित करने और एक कमांड से शुरू करने की सुविधा देता है। compose.yaml नाम की फ़ाइल बनाएँ:
services:
web:
image: nginx:latest
ports:
- "8080:80"
volumes:
- web-data:/usr/share/nginx/html
restart: unless-stopped
volumes:
web-data:
उसी डायरेक्टरी से, सब कुछ बैकग्राउंड में शुरू करें:
docker compose up -d
Compose आपके लिए नेटवर्क, नामित वॉल्यूम और कंटेनर बनाता है। उपयोगी साथी:
docker compose ps
docker compose logs -f
docker compose down
restart: unless-stopped नीति का मतलब है कि रीबूट या क्रैश के बाद सेवा अपने आप वापस आ जाती है — यह उस सर्वर के लिए सुविधाजनक है जिसे आप चौबीसों घंटे नहीं देख रहे हैं।
चरण 4: वॉल्यूम के साथ डेटा स्थायी रूप से सहेजें
यह वह हिस्सा है जो शुरुआती अक्सर गलत करते हैं। कंटेनर के अपने फ़ाइल सिस्टम के अंदर लिखी गई कोई भी चीज़ कंटेनर हटाए या फिर से बनाए जाने पर गायब हो जाती है। डेटा रखने के लिए, इसे वॉल्यूम में डालें। दो सामान्य तरीके हैं:
- नामित वॉल्यूम — Docker द्वारा प्रबंधित, डेटाबेस के लिए आदर्श। ऊपर दिया गया Compose उदाहरण
web-dataनाम का उपयोग करता है। - बाइंड माउंट — होस्ट पर एक फ़ोल्डर को सीधे कंटेनर में मैप करें, उदाहरण के लिए
./config:/etc/app। उन कॉन्फ़िगरेशन फ़ाइलों के लिए बहुत अच्छा है जिन्हें आप हाथ से संपादित करना चाहते हैं।
कमांड लाइन से वॉल्यूम निरीक्षण और प्रबंधित करें:
docker volume ls
docker volume inspect web-data
जब तक आपके महत्वपूर्ण पथ वॉल्यूम की ओर इशारा करते हैं, आप पूरे दिन कंटेनरों को हटा और फिर से बना सकते हैं बिना एक बाइट खोए। वॉल्यूम डायरेक्टरी को अपने सर्वर बैकअप के हिस्से के रूप में बैक अप करें।
चरण 5: छवियों और कंटेनरों को अपडेट करें
कंटेनर छवियों को किसी भी सॉफ़्टवेयर की तरह सुरक्षा और फ़ीचर अपडेट मिलते हैं। Compose स्टैक को अपडेट करना दो-चरणीय दिनचर्या है: नई छवियों को खींचें, फिर कंटेनरों को फिर से बनाएँ।
docker compose pull
docker compose up -d
क्योंकि आपका डेटा वॉल्यूम में रहता है, पुनः निर्माण सुरक्षित है। समय के साथ, अप्रयुक्त छवियां जमा हो जाती हैं और डिस्क स्थान खा जाती हैं। उन्हें कभी-कभी साफ करें:
docker image prune
जब आप आश्चर्य के बजाय पूर्वानुमानित, दोहराए जाने योग्य अपडेट चाहते हैं, तो विशिष्ट संस्करण टैग पर पिन करें (उदाहरण के लिए latest के बजाय postgres:16)।
शुरुआती लोगों के लिए बुनियादी Docker सुरक्षा
कंटेनर सुविधाजनक हैं, लेकिन वे जादुई सुरक्षा सीमा नहीं हैं। कुछ आदतें आपको परेशानी से बचाती हैं:
- केवल उन छवियों को चलाएँ जिन पर आप भरोसा करते हैं। आधिकारिक छवियों या प्रसिद्ध प्रकाशकों को प्राथमिकता दें। केवल इसलिए रूट के रूप में यादृच्छिक छवि न चलाएँ क्योंकि ट्यूटोरियल ने ऐसा कहा था — अविश्वसनीय छवि आपके सर्वर पर कोड चलाती है।
- कंटेनरों के अंदर रूट को हटाएँ। कई आधिकारिक छवियां गैर-रूट उपयोगकर्ता का समर्थन करती हैं, या आप Dockerfile में
USERनिर्देश के साथ एक सेट कर सकते हैं। सीमित उपयोगकर्ता के रूप में चलाने से ऐप से समझौता होने पर विस्फोट की त्रिज्या कम हो जाती है। - केवल उन पोर्ट को प्रकाशित करें जिनकी आपको आवश्यकता है। हर
-pफ़्लैग इंटरनेट के लिए एक द्वार खोलता है। डेटाबेस को आंतरिक Docker नेटवर्क पर रखें और केवल अपने वेब फ्रंट एंड को उजागर करें। - होस्ट को पैच रखें। Docker सुरक्षा सुरक्षित सर्वर से शुरू होती है। नियमित रूप से
sudo apt update && sudo apt upgradeचलाएँ और SSH को लॉक डाउन करें।
कुछ भी सार्वजनिक रूप से एक्सपोज़ करने से पहले, हमारी साथी जाँच सूची देखें कि कैसे पहले 10 मिनट में अपने VPS को सुरक्षित करें — इसमें SSH कुंजियाँ, फ़ायरवॉल और स्वचालित अपडेट शामिल हैं जो Docker होस्ट के साथ पूरी तरह से मेल खाते हैं।
Docker के लिए तैयार VPS चुनना
Docker मामूली हार्डवेयर पर चलता है, लेकिन एक बार जब आप कई कंटेनर स्टैक करते हैं तो समर्पित संसाधन वास्तविक अंतर पैदा करते हैं। साझा, ओवरसोल्ड होस्टिंग का मतलब है कि शोर पड़ोसी सबसे खराब समय पर आपके डेटाबेस को थ्रॉटल कर सकता है। ApexVPS आपको वास्तव में समर्पित vCPU, NVMe SSD स्टोरेज और पूर्ण रूट एक्सेस देता है, ताकि आपके कंटेनरों को वह प्रदर्शन मिले जो आपने भुगतान किया है। हर प्लान Ubuntu, Debian और अन्य लोकप्रिय वितरणों का समर्थन करता है, और आप साइनअप पर अपनी SSH कुंजी डाल सकते हैं।
भुगतान केवल क्रिप्टो में OxaPay के माध्यम से होता है, जो Bitcoin, Ethereum, USDT और 30+ क्रिप्टोकरेंसी स्वीकार करता है — न क्रेडिट कार्ड, न बैंक खाता, और न ही KYC। आप एक्सेस विवरण प्राप्त करने के लिए केवल एक ईमेल प्रदान करते हैं, और बस। अपने कंटेनर वर्कलोड के लिए उपयुक्त प्लान खोजने हेतु ApexVPS मूल्य सूची पृष्ठ पर स्पेक्स और क्षेत्रों की तुलना करें।
अक्सर पूछे जाने वाले प्रश्न
क्या VPS पर Docker चलाने के लिए बहुत अधिक RAM की आवश्यकता होती है?
नहीं। Docker स्वयं हल्का होता है और बहुत कम ओवरहेड जोड़ता है। एक या दो कंटेनर 2 GB RAM पर आराम से चलते हैं, जबकि 4 GB या अधिक डेटाबेस और कई सेवाओं के लिए जगह देता है।
क्या यह docker-compose है या docker compose?
आधुनिक इंस्टॉलेशन में, Compose एक प्लगइन के रूप में आता है, इसलिए कमांड है docker compose (स्पेस के साथ)। पुराना स्टैंडअलोन docker-compose बाइनरी अभी भी काम करता है लेकिन चरणबद्ध तरीके से हटाया जा रहा है — नए सेटअप पर प्लगइन संस्करण का उपयोग करें।
कंटेनर हटाए जाने पर मेरा डेटा कहाँ संग्रहीत होता है?
कंटेनर के अंदर लिखी गई कोई भी चीज़ हटाने पर खो जाती है। महत्वपूर्ण डेटा को नामित वॉल्यूम या बाइंड माउंट में संग्रहीत करें ताकि यह कंटेनर पुनर्निर्माण पर बना रहे। इसी तरह डेटाबेस और अपलोड सुरक्षित रहते हैं।
क्या मैं क्रिप्टोकरेंसी से Docker-तैयार VPS के लिए भुगतान कर सकता हूँ?
हाँ। ApexVPS चेकआउट केवल क्रिप्टो है और यह OxaPay के माध्यम से Bitcoin, Ethereum, USDT और 30+ सिक्के स्वीकार करता है। साइनअप के लिए केवल ईमेल चाहिए, न क्रेडिट कार्ड और न ही पहचान सत्यापन।