Docker और docker-compose में क्या अंतर है


237

dockerऔर docker-composeएक ही dockerFile के साथ बातचीत करते हुए प्रतीत होता है कि दोनों उपकरणों में क्या अंतर है?

जवाबों:


270

dockerCLI समय उपयोग किए गए डोकर इंजन पर अलग-अलग कंटेनर प्रबंध कर रहा है। यह डॉकटर डेमन एपि तक पहुंचने के लिए क्लाइंट कमांड लाइन है।

docker-composeCLI एक बहु कंटेनर आवेदन का प्रबंधन करने के लिए इस्तेमाल किया जा सकता है। यह उन कई विकल्पों को भी ले जाता है जिन्हें आप आसान पुन: उपयोग के लिए फ़ाइल docker runमें cli में दर्ज करेंगे docker-compose.yml। यह उसी डॉकटर एपी के शीर्ष पर फ्रंट एंड "स्क्रिप्ट" के रूप में काम करता है docker, इसलिए आप कमांड और ढेर सारी शेल स्क्रिप्टिंग के docker-composeसाथ सब कुछ कर सकते हैं docker। देखें डोकर-लिखें सुविधा पर इस दस्तावेज़ अधिक जानकारी के लिए।


झुंड मोड के लिए अद्यतन

चूंकि यह उत्तर पोस्ट किया गया था, docker ने docker-compose.yml फ़ाइलों का दूसरा उपयोग जोड़ा है। संस्करण 3 yml प्रारूप और docker 1.13 के साथ शुरू , आप docker-compose के साथ yml का उपयोग कर सकते हैं और docker के झुंड मोड में एक स्टैक को परिभाषित करने के लिए भी। उत्तरार्द्ध करने के लिए आपको docker stack deploy -c docker-compose.yml $stack_nameइसके बजाय उपयोग करने की आवश्यकता है docker-compose upऔर फिर dockerकमांड के बजाय कमांड के साथ स्टैक का प्रबंधन करें docker-compose। मानचित्रण दो उपयोगों के बीच एक के लिए एक है:

  • रचना परियोजना -> झुंड ढेर: एक विशिष्ट उद्देश्य के लिए सेवाओं का एक समूह
  • रचना सेवा -> झुंड सेवा: एक छवि और यह विन्यास है, संभवतः स्केल किया गया है।
  • कंपोजर कंटेनर -> झुंड टास्क: एक सेवा में एक एकल कंटेनर

झुंड मोड पर अधिक जानकारी के लिए, डॉकर के झुंड मोड प्रलेखन देखें


76

docker एकल कंटेनरों का प्रबंधन करता है

docker-compose कई कंटेनर अनुप्रयोगों का प्रबंधन करता है

डॉकटर-कंपोज के उपयोग के लिए 3 चरणों की आवश्यकता होती है:

  1. Dockerfile के साथ ऐप के माहौल को परिभाषित करें
  2. Docker-compose.yml में ऐप सेवाओं को परिभाषित करें
  3. docker-compose upऐप को शुरू करने और चलाने के लिए चलाएं

docker- रचना करना

नीचे एक docker-compose.yml डॉक डॉक्स से लिया गया उदाहरण है :

services:
  web:
    build: .
    ports:
    - "5000:5000"
    volumes:
    - .:/code
    - logvolume01:/var/log
    links:
    - redis
  redis:
    image: redis
volumes:
  logvolume01: {}

3
स्पष्टता के लिए, अनुभाग build: .में लाइन webचरण 1 में बनाए गए डॉकरीफाइल के स्थान को इंगित करता है
एंड्रयूजेंट्री
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.