2017-06-24 10 views
6

नहीं चल रहा है तो मुझे केवल एक डॉकर कंटेनर चलाने की आवश्यकता है यदि यह पहले से चल रहा न हो। इस आदेश को देखते हुए। अगर मैं अस्तित्व में नहीं हूं तो मैं इसे कैसे चलाऊंगा।डॉकर कंटेनर कैसे चलाएं यदि पहले से

docker run --name nginx -d nginx 

मैं किसी भी स्क्रिप्ट या भाषा के लिए खुला हूं।

उत्तर

5

एक फिल्टर का उपयोग की जाँच करने के अगर एक निश्चित नाम के एक कंटेनर मौजूद है:
(docker ps Filterring देखें)

#!/bin/bash 

name='nginx' 

[[ $(docker ps -f "name=$name" --format '{{.Names}}') == $name ]] || 
docker run --name nginx -d nginx 

docker run ही अगर पहले भाग गलत है निष्पादित किया जाएगा।

0

यदि कोई नाम वाला कंटेनर है तो डॉकर कभी भी एक नया कंटेनर नहीं चलाएगा।

docker run --name nginx -d nginx 

फिर से रन:: तो निर्दिष्ट करने --name आपको क्या चाहिए सब है

docker run --name nginx -d nginx 
Error response from daemon: Conflict. The name "nginx" is already in use by container f9e5798a82e0. You have to delete (or rename) that container to be able to reuse that name. 
0

खैर अगर आप किसी भी भाषा मैं का उपयोग करना चाहिये इस कार्य के लिए डोकर-रचना के लिए खुले हैं। यह स्थापित करने के बाद, एक फ़ाइल इस सामग्री के साथ डोकर-compose.yml बनाएं जिसका नाम:

version: '2' 
services: 
    nginx: 
    image: 'nginx' 

तब का उपयोग करें:

docker-compose up - d 

यह हमेशा की जाँच करेगा अगर कंटेनर पहले से ही चल रहा है। यदि कंटेनर मौजूद नहीं है तो यह इसे बनाएगा और चलाएगा। यदि कंटेनर बंद कर दिया गया है तो यह इसे चलाएं।

सबसे अच्छी बात यह है कि यदि आप डॉकर-कंपोज़.इमएल को बदलते हैं या छवि का एक नया संस्करण खींचते हैं तो यह स्वचालित रूप से सभी वॉल्यूम्स को अज्ञात वाले संरक्षित करने वाले कंटेनर को फिर से बना देगा।

सादर

6

मैं निश्चित रूप से डोकर-लिखें सुविधा में देख सुझाव है और docker-compose up जैसा कि ऊपर दिए।

के बाद से अपने प्रश्न रन के साथ है, मैं VonC

के जवाब

docker start nginx || docker run --name nginx -d nginx

कंटेनर पहले से ही चल रहा है को आसान बनाने में होता है, डोकर शुरू 0 इस प्रकार कोई रन कहा जाता है वापस आ जाएगी। यदि कंटेनर EXISTS लेकिन चल रहा नहीं है, तो प्रारंभ शुरू हो जाएगा, अन्यथा यह इसे बनाता है।

मौजूद है लेकिन VonC उत्तर में भाग बंद हो गया है।

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