2015-05-14 15 views
27

मेरे पास docker-compose.yml है जिसमें कई कंटेनर हैं। उनमें से तीन मेरे ऐप (क्लाइंट, सर्वर और डेटाबेस) के लिए हैं और शेष विभिन्न देव उपकरण (उदा। Psql, npm, manage.py, आदि) के लिए हैं। जब मैं docker-compose up करता हूं तो वे सभी शुरू हो जाते हैं, लेकिन मैं केवल तीन मुख्य लोगों को शुरू करना चाहता हूं। मेरे द्वारा निर्दिष्ट लिंक के कारण, मैं केवल उन तीनों को docker-compose up client से शुरू कर सकता हूं लेकिन फिर आउटपुट केवल एक कंटेनर से ही है। इसलिए, निम्न में से एक करने के लिए एक तरीका है:डॉकर-केवल कुछ कंटेनर के लिए लिखें

  1. टेल डोकर-लिखें जो कंटेनर docker-compose up
  2. द्वारा शुरू से करना चाहिए से docker-compose up client

उत्तर

48

आप शुरू कर सकते हैं सभी लिंक किए गए कंटेनरों से उत्पादन प्राप्त करें का उपयोग करके कंटेनर:

$ docker-compose up -d client 

इस पृष्ठभूमि में कंटेनर चलेंगे और उत्पादन

01 से तो उपलब्ध हो जाएगा
$ docker-compose logs 

और इसे अपने सभी शुरू कर दिया कंटेनरों

+3

इस करना चाहिए स्वीकार्य उत्तर हो क्योंकि यह वास्तव में प्रश्न का उत्तर देता है। –

2

आप आम तौर पर यह करने के लिए नहीं करना चाहती शामिल होंगे। डॉकर कंपोज़ के साथ आप सेवाओं को परिभाषित करते हैं कि आपके ऐप को लिखें। npm और manage.py केवल प्रबंधन आदेश हैं। आपको उनके लिए एक कंटेनर की आवश्यकता नहीं है। आप की जरूरत है, manage.py के साथ अपने डेटाबेस तालिकाओं बनाते हैं, तुम सब करने की ज़रूरत है: एक बंद dynos Heroku का उपयोग करता है के रूप में यह की

docker-compose run client python manage.py create_db 

Think।

आप वास्तव में इन प्रबंधन आदेशों का इलाज के रूप में अलग कंटेनर (और भी इन के लिए डोकर लिखें उपयोग करें), तो आपको एक अलग .yml फ़ाइल बना सकते हैं और निम्न आदेश के साथ डोकर लिखें शुरू करने के लिए की जरूरत है:

docker-compose up -f my_custom_docker_compose.yml 
+1

_ आप आमतौर पर यह नहीं करना चाहते हैं - हाँ, लेकिन यह बहुत आसान है यदि आप उदाहरण के लिए अन्य सभी सेवाओं को शुरू करने से पहले डेटाबेस भरना चाहते हैं – msrd0

+1

[बहुत सारे लोग] (https://github.com/docker/लिखें/मुद्दे/18 9 6) ऐसा करना चाहते हैं। – kojiro

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