2016-04-27 12 views
33

डॉकर-compose.yml में परिभाषित सेवाओं का दायरा है। ये सेवा शुरू कर दी गई है। मुझे इनमें से केवल एक को पुनर्निर्माण करने और अन्य सेवाओं के बिना इसे शुरू करने की आवश्यकता है। मैं निम्न कमांड चलाएँ: मैं पुराने nginx कंटेनर मिला अंत मेंडॉकर कंटेनर को डॉकर-compose.yml में पुनर्निर्माण कैसे करें?

docker-compose up -d # run all services 
docker-compose stop nginx # stop only one. but it still running !!! 
docker-compose build --no-cache nginx 
docker-compose up -d --no-deps # link nginx to other services 

। जिस तरह से डॉकर-कंपोज़ सभी चल रहे कंटेनरों को मार नहीं देता है!

उत्तर

16

यह आपकी समस्या का समाधान करना चाहिए:

docker-compose ps # lists all services (id, name) 
docker-compose stop <id/name> #this will stop only the selected container 
docker-compose rm <id/name> # this will remove the docker container permanently 
docker-compose up # builds/rebuilds all not already built container 
+3

यदि आप सभी कंटेनर 'स्टॉप' और 'आरएम' करना चाहते हैं तो आप 'डॉकर-कंपोज़ डाउन' कमांड का उपयोग कर सकते हैं। आपका समाधान बेहतर है अगर आप केवल कुछ से छुटकारा पाना चाहते हैं। – hirowatari

1

समस्या है:

$ docker-compose stop nginx 

काम नहीं किया (आप ने कहा कि यह अभी भी चल रहा है)। क्या आप फिर भी यह पुनर्निर्माण के लिए जा रहे हैं, तो आप इसे की हत्या की कोशिश कर सकते हैं:

$ docker-compose kill nginx 

यह अभी भी काम नहीं करता है, डोकर साथ यह सीधे रोकने की कोशिश:

$ docker stop nginx 

या यह

हटाना
$ docker rm -f nginx 

यदि यह अभी भी काम नहीं करता है, तो डॉकर के अपने संस्करण की जांच करें, आप अपग्रेड करना चाहेंगे।

यह एक बग हो सकता है, आप जांच सकते हैं कि कोई आपके सिस्टम/संस्करण से मेल खाता है या नहीं। यहाँ पूर्व के लिए, एक जोड़ी हैं: https://github.com/docker/docker/issues/10589

https://github.com/docker/docker/issues/12738

समाधान के लिए, आप इस प्रक्रिया को मारने की कोशिश कर सकता है।

$ ps aux | grep docker 
$ kill 225654 # example process id 
-3

केवल:

$ docker-compose restart [yml_service_name] 
+1

इससे नए बदलाव नहीं आएंगे। मैन्युअल से - यदि आप अपने डॉकर-compose.yml कॉन्फ़िगरेशन में परिवर्तन करते हैं तो ये परिवर्तन इस आदेश को चलाने के बाद दिखाई नहीं देंगे। – denov

48

docker-compose up

$docker-compose up -d --no-deps --build <service_name> 

--no-deps - जुड़ा हुआ सेवाओं प्रारंभ न करें।

- बिल्ड - कंटेनर शुरू करने से पहले छवियां बनाएं।

+2

'डॉकर-कंपोज़ बिल्ड सेवा 1 सर्विस 2 --no-cache' यह काम बेहतर करता है (https://github.com/docker/compose/issues/1049)। मुझे कैश किए गए कंटेनरों के साथ समस्या थी जो 'डॉकर-कंपोज़ अप-डी -no-deps --build 'का उपयोग करने से पहले बनाए गए थे। – evgpisarchik

संबंधित मुद्दे