डॉकटर: कंटेनर फिर से फिर से चालू हो जाता है


108

मैंने आज Appcontainers / Mediawiki docker छवि का उपयोग करके MediaWiki का एक उदाहरण तैनात किया है, और मेरे पास अब एक नई समस्या है जिसके लिए मुझे कोई सुराग नहीं मिल सकता है। उपयोग करने के बाद मीडियाविकी फ्रंट कंटेनर को संलग्न करने की कोशिश करने के बाद:

docker attach mediawiki_web_1

जो Terminatedमेरे विन्यास पर जवाब देता है, जिसकी मैं अनदेखी करता हूं, यह भी कोशिश करता हूं:

docker exec -it mediawiki_web_1 bash

मुझे त्रुटि संदेश के करीब कुछ मिलता है:

Error response from daemon: Container 81c07e4a69519c785b12ce4512a8ec76a10231ecfb30522e714b0ae53a0c9c68 is restarting, wait until the container is running

और मेरी नई समस्या है, क्योंकि यह कंटेनर फिर से शुरू करना बंद नहीं करता है। मैं देख सकता हूँ कि किसका उपयोग करने docker ps -aसे हमेशा रिटर्न मिलता है Restarting (127) x seconds ago

बात यह है कि, मैं कंटेनर को रोकने में सक्षम हूं (मैंने परीक्षण किया) लेकिन इसे फिर से शुरू करने से लगता है कि इसे फिर से शुरू करने वाले लूप में लाया जाएगा।

किसी भी विचार यहाँ क्या मुद्दा हो सकता है? जब तक मैंने इसे संलग्न करने की कोशिश नहीं की तब तक पूरी बात ठीक से काम कर रही थी ...

मैं दुखी हूँ :-(


मंचों .ocker.com/t/how-to-delete- cache/ 5753 /2 का उपयोग करके मैंने अपने पूरे डॉकर कैश को पूरी तरह से हटाकर सफलता प्राप्त की (मैंने rmi में -f टैग भी जोड़ा)। फिर मैंने अपने कंटेनरों का पुनर्निर्माण किया और उन्होंने काम किया।
अल्बर्टो56 56

मेरे लिए यह कंटेनर और छवियों को हटाने के लिए पर्याप्त नहीं था (जैसा कि @ alberto56 के लिंक में वर्णित है), मुझे भी संबंधित वॉल्यूम को हटाना पड़ा। एक बार जब मैंने ऐसा किया, तो मैं व्यवसाय में वापस आ गया।
केटी बायर्स

जवाबों:


172

docker logsआदेश जब आप इसे सहभागी नहीं चला आप उत्पादन एक कंटेनर पैदा कर रहा है दिखाएगा। इसमें त्रुटि संदेश शामिल होने की संभावना है।

docker logs --tail 50 --follow --timestamps mediawiki_web_1

आप अग्रभूमि में एक ताजा कंटेनर भी चला सकते हैं, यह docker run -ti <your_wiki_image>देखने के लिए कि वह क्या करता है। आपको अपने docker-composeyml से dockerकमांड में कुछ कॉन्फिग को मैप करने की आवश्यकता हो सकती है ।

मुझे लगता है कि मीडिया विकी प्रक्रिया में संलग्न होने से एक दुर्घटना हुई, जिसने आपके डेटा में कुछ दूषित कर दिया है।


आपके द्वारा प्रदान किए गए आदेश का परिणाम, जो मुझे लगता है कि कंटेनर से संबंधित पिछले 50 लॉग 2016-05-26T16:38:27.362409489Z * Stopping web server apache2 * 2016-05-26T21:49:11.376549083Z Terminated 2016-05-26T21:49:11.688655642Z /bin/bash: /tmp/.runconfig.sh: No such file or directoryहो रहे हैं, निम्नलिखित है: इसलिए आप सही हैं, डेटा में कुछ दूषित है जैसा कि runconfig.sh गायब हो गया है। मैं आपकी सलाह के अनुसार अग्रभूमि में एक बार और कंटेनर चलाने की कोशिश करूंगा। बस यह खोजने की आवश्यकता है कि 25 उचित तर्क कैसे निर्दिष्ट करें ^ ^
बालसन

7
धन्यवाद, एक ताजा कंटेनर चलाने ने काम किया। डॉकर मेरी तैनाती को आसान करने वाला था, लेकिन अब के लिए यह एक बड़ी विफलता है :-) मुझे शायद सीखने और अधिक प्रयास करने की आवश्यकता है ...
बालसन

मैं अपने बालों को खींच रहा था ताकि MySQL काम कर सके। docker ps -aमुझे दिखाया कि यह एक बूट लूप में फंस गया था और आपकी कमांड ने मुझे दिखाया था: mysql डायरेक्टरी में पहले से मौजूद फाइलें जिन्हें वह डिलीट नहीं कर सकता था। आपने मेरे बालों को बाहर खींचने के घंटे से अधिक बचा लिया। धन्यवाद!
Blizzardengle

32

जब docker kill CONTAINER_IDकाम नहीं करता है और काम docker stop -t 1 CONTAINER_IDनहीं करता है, तो आप कंटेनर को हटाने की कोशिश कर सकते हैं:

docker container rm CONTAINER_ID

मेरे पास आज एक समान मुद्दा था जहां कंटेनर लगातार पुनरारंभ लूप में थे।

मेरे मामले में मुद्दा मेरे एक गरीब इंजीनियर होने से संबंधित था।

वैसे भी, मैंने कंटेनर को हटाकर, अपना कोड ठीक करके और फिर कंटेनर को फिर से बनाने और चलाने के द्वारा समस्या को ठीक किया।

आशा है कि यह भविष्य में इस मुद्दे के साथ फंसे किसी को भी मदद करता है


4
मैं अपने आवेदन में और मेरे डोकर लिखें फ़ाइल मैं जोड़ा में बुरा कोड रखा था restart: alwaysजो मुझे डोकर के एक पाश में छोड़ दिया एक टूट एप्लिकेशन शुरू करने की कोशिश .. :(
Giannis Katsini

4

व्यक्तिगत अनुभव से ऐसा लगता है कि आपके डॉकटर कंटेनर में कोई समस्या है जो इसे पुनरारंभ करने की अनुमति नहीं दे रही है। इसलिए कंटेनर के भीतर कुछ प्रक्रिया फिर से शुरू होने का कारण बन रही है या कुछ प्रक्रिया कंटेनर के शुरू होने पर दुर्घटनाग्रस्त हो रही है।

जब आप कंटेनर शुरू करते हैं, तो सुनिश्चित करें कि आप इसे "-d" शुरू करते हैं यदि आप इसे संलग्न करने जा रहे हैं। (पूर्व। "docker run -d mediawiki_web_1")


मुझे लगता है कि डॉकटर-कंपोज़ का उपयोग करके कंटेनर को चलाना वैसे भी अलग है, नहीं? या -d तर्क मेरी विन्यास फाइल में गायब है। वह जाँच करेगा।
बालसन २ Bal

4

tl; dr यह एक स्थिति कोड के साथ पुनरारंभ हो रहा है 127, जिसका अर्थ है कि आपके कंटेनर में एक लापता फ़ाइल / लाइब्रेरी है। एक ताजा कंटेनर शुरू करने से यह ठीक हो सकता है।

स्पष्टीकरण:

जहां तक ​​डॉकटर की मेरी समझ है, यह वही है जो हो रहा है:

  1. कंटेनर शुरू करने की कोशिश करता है। इस प्रक्रिया में, यह एक फ़ाइल / लाइब्रेरी तक पहुंचने की कोशिश करता है जो मौजूद नहीं है।
  2. यह एक स्थिति कोड के साथ बाहर निकलता है 127, जिसे इस उत्तर में समझाया गया है ।
  3. आम तौर पर, यह वह जगह है जहां कंटेनर को पूरी तरह से बाहर निकलना चाहिए था, लेकिन यह फिर से शुरू हो गया।
  4. वह पुन: प्रारंभ क्योंकि पुनः आरंभ नीति के अलावा कुछ करने के लिए सेट किया गया होगा no( डिफ़ॉल्ट ), (या तो आदेश पंक्ति ध्वज का उपयोग --restartया docker-compose.ymlकुंजी restartकंटेनर शुरू करते समय)।

समाधान: कुछ आपके कंटेनर को दूषित कर सकता है। एक ताजा कंटेनर शुरू करना आदर्श रूप से काम करना चाहिए।


2

यह मामला भी हो सकता है यदि आपने एक systemdसेवा बनाई है जो है:

[Service]
Restart=always
ExecStart=/usr/bin/docker container start -a my_container
ExecStop=/usr/bin/docker container stop -t 2 my_container

1

मेरे मामले में nginx कंटेनर को पुनरारंभ करना जारी था, मैंने nginx कंटेनर के लॉग की जाँच की और पता चला। एक unrequired डोमेन की .crt और .key फ़ाइल में त्रुटियाँ हो रही हैं, इसलिए मैंने संबंधित .conf फ़ाइल, .crt और .key को हटा दिया और फिर पुनः आरंभ किया। नग्नेक्स। यह nginx पुनरारंभ किए बिना ठीक काम कर रहा है।


0

मैं मिनिक्यूब को पृष्ठभूमि में चलाना भूल गया था और मुझे हमेशा उन्हें फिर से शुरू करने का मौका मिला


0

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

docker system prune

https://forums.docker.com/t/docker-registry-in-restarting-1-status-forever/12717/3


0

इन doams को अपने docker yml फ़ाइल में जोड़ने का प्रयास करें

restart: "no"
  restart: always
  restart: on-failure
  restart: unless-stopped
  environment:
    POSTGRES_DB: "db_name"
    POSTGRES_HOST_AUTH_METHOD: "trust"

फाइनल फाइल कुछ इस तरह दिखना चाहिए

postgres:
  restart: "no"
  restart: always
  restart: on-failure
  restart: unless-stopped
  image: postgres:latest
  volumes:
    - /data/postgresql:/var/lib/postgresql
  ports:
    - "5432:5432"
  environment:
    POSTGRES_DB: "db_name"
    POSTGRES_HOST_AUTH_METHOD: "trust"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.