ডকার: ধারক আবার আবার চালু করতে থাকে art


111

আমি আজ অ্যাপকন্টেইনার / মিডিয়াউইকি ডকার ইমেজটি ব্যবহার করে মিডিয়াউইকের একটি উদাহরণ স্থাপন করেছি এবং আমার এখন একটি নতুন সমস্যা রয়েছে যার জন্য আমি কোনও ক্লু খুঁজে পাচ্ছি না। মিডিয়াউইকি সামনের পাত্রে এটি ব্যবহার করার চেষ্টা করার পরে:

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

জিনিসটি হ'ল, আমি ধারকটি থামাতে সক্ষম হয়েছি (আমি পরীক্ষা করেছি) তবে এটি আবার শুরু করলে মনে হচ্ছে এটি পুনরায় আরম্ভের লুপে ফিরে আসবে।

কোন ধারণা এখানে সমস্যা হতে পারে? যতক্ষণ না আমি এটির সাথে সংযুক্ত করার চেষ্টা করেছি ... পুরো জিনিসটি সঠিকভাবে কাজ করছে ...

আমি দু: খিত :-(


Forums.docker.com/t/how-to-delete-cache/5753/2 ব্যবহার করে (আমিও -f ট্যাগটি আরএমআইতে যুক্ত করেছি) ব্যবহার করে আমার সম্পূর্ণ ডকার ক্যাশে সম্পূর্ণরূপে মুছে ফেলে আমার সাফল্য হয়েছিল । তারপরে আমি আমার পাত্রে পুনর্নির্মাণ করেছি এবং তারা কাজ করেছে।
alberto56

আমার জন্য এটি পাত্রে এবং চিত্রগুলি মুছে ফেলার পক্ষে যথেষ্ট ছিল না (@ অ্যালবার্টো ৫6 এর লিঙ্কে বর্ণিত), আমাকে সম্পর্কিত ভলিউমটিও মুছতে হয়েছিল। একবার আমি এটি করেছিলাম, আমি আবার ব্যবসায়ে ফিরে এসেছি।
কেটি বায়ার্স

উত্তর:


184

docker logsকমান্ড যখন আপনি এটি ইন্টারেক্টিভ চালাতে না আপনি আউটপুট একটি ধারক উৎপাদিত হয় প্রদর্শন করবে। এটিতে ত্রুটি বার্তা অন্তর্ভুক্ত থাকতে পারে।

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

আপনি docker run -ti <your_wiki_image>কী তা কী তা নিয়ে অগ্রভাগে একটি নতুন কন্টেইনার চালাতে পারেন । আপনার docker-composeyML থেকে dockerকমান্ডের জন্য আপনাকে কিছু কনফিগারেশন মানচিত্রের প্রয়োজন হতে পারে ।

আমি অনুমান করতে পারি যে মিডিয়া উইকি প্রক্রিয়ায় সংযুক্তি সংঘর্ষের ফলে আপনার ডেটাতে কিছু দূষিত করেছে।


আপনি যে কমান্ডটি দিয়েছিলেন তার ধারনা যা আমি ধারনা করেছি যে 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ধারকটির সাথে সম্পর্কিত 50 টি লগগুলি নিম্নলিখিতটি পেয়েছে: তাই, আপনি ঠিক বলেছেন, রানকনফিগ.শ. হিসাবে অদৃশ্য হয়ে গেছে বলে ডেটাতে কিছু কলুষিত হয়েছে। আপনার পরামর্শ অনুসারে আমি আর একবার পাত্রে চালানোর চেষ্টা করব। 25 টি উপযুক্ত যুক্তি কীভাবে নির্দিষ্ট করতে হবে তা কেবল খুঁজে বের করতে হবে ^^
বালেসান

8
ধন্যবাদ, একটি নতুন কন্টেইনার চালানো কাজটি করেছে। ডকারের আমার স্থাপনা সহজ করার কথা ছিল তবে আপাতত এটি একটি বড় ব্যর্থতা :-) আমার সম্ভবত আরও শিখতে হবে এবং আরও চেষ্টা করা দরকার ...
বালেসান

আমি মাইএসকিউএলকে কাজ করার চেষ্টা করে আমার চুলগুলি টানছিলাম। docker ps -aএটি আমাকে বুট লুপে আটকে গিয়েছিল এবং আপনার কমান্ডটি আমাকে দেখিয়েছে কেন: ইতোমধ্যে মাইএসকিএল ডিরেক্টরিতে থাকা ফাইলগুলি এটি মুছতে পারে নি। আপনি আমার চুলগুলি টানতে আরও কয়েক ঘন্টা বাঁচিয়েছেন। ধন্যবাদ!
ব্লিজডার্ডল ২

33

কখন docker kill CONTAINER_IDকাজ করে না এবং কাজ docker stop -t 1 CONTAINER_IDকরে না, আপনি ধারকটি মোছার চেষ্টা করতে পারেন:

docker container rm CONTAINER_ID

আমার আজ একই ধরণের সমস্যা হয়েছিল যেখানে ধারকরা ক্রমাগত পুনঃসূচনা লুপে ছিল।

আমার মামলার বিষয়টি আমার কাছে একজন দুর্বল প্রকৌশলী হওয়ার সাথে সম্পর্কিত ছিল।

যাইহোক, আমি ধারকটি মুছে ফেলা, আমার কোড ঠিক করে এবং তারপরে ধারকটি পুনর্নির্মাণ এবং চালিয়ে সমস্যার সমাধান করেছি running

আশা করি এটি ভবিষ্যতে এই সমস্যাটিতে আটকে থাকা কাউকে সহায়তা করে


4
আমি আমার অ্যাপ্লিকেশনটিতে এবং আমার ডকার কমপোজ ফাইলটিতে খারাপ কোড রেখেছিলাম restart: alwaysযা আমি যুক্ত করেছি যা আমাকে একটি
ডোকরের লুপে

4

ব্যক্তিগত অভিজ্ঞতা থেকে মনে হচ্ছে আপনার ডকারের ধারকটির মধ্যে একটি সমস্যা রয়েছে যা এটিকে পুনরায় আরম্ভ করার অনুমতি দিচ্ছে না। সুতরাং ধারকটির মধ্যে কিছু প্রক্রিয়া পুনরায় আরম্ভ হওয়ার কারণ বা কিছু প্রক্রিয়া কনটেইনারটি শুরুর সময় ক্র্যাশ ঘটায়।

আপনি যখন ধারকটি শুরু করবেন তখন নিশ্চিত হন যে আপনি এটি সংযুক্ত করতে যাচ্ছেন তবে "-ড" বিচ্ছিন্ন করে শুরু করেছেন। (উদা। "ডকার চালিত মিডিয়াউইকি_উইউব_1")


আমি ধরে নিই যে ডকার-কম্পোজ ব্যবহার করে ধারকটি চালাচ্ছি এটি যাইহোক, আলাদা? অথবা -ডি আর্গুমেন্টটি আমার কনফিগার ফাইলে অনুপস্থিত। এটি যাচাই করবে
বালেসান

4

tl; dr এটির একটি স্থিতি কোডের সাথে পুনরায় চালু হচ্ছে 127, যার অর্থ আপনার পাত্রে কোনও ফাইল / লাইব্রেরি নেই। একটি নতুন পাত্রে শুরু করা এটি ঠিক করতে পারে।

ব্যাখ্যা:

ডকার সম্পর্কে আমার বোঝা যতদূর যায়, এটাই হচ্ছে:

  1. ধারক শুরু করার চেষ্টা করে। প্রক্রিয়াতে, এটি কোনও ফাইল / লাইব্রেরি অ্যাক্সেস করার চেষ্টা করে যা বিদ্যমান নেই।
  2. এটি একটি স্থিতি কোড সহ প্রস্থান করে 127, যা এই উত্তরে ব্যাখ্যা করা হয়েছে ।
  3. সাধারণত, এই স্থানে কনটেইনারটি সম্পূর্ণরূপে প্রস্থান করা উচিত ছিল তবে এটি পুনরায় চালু হয়।
  4. এটি পুনরায় চালু হয় কারণ ধারকটি শুরু করার সময় পুনরায় আরম্ভের নীতি অবশ্যই no( ডিফল্ট ), (কমান্ড লাইন পতাকা --restartবা docker-compose.ymlকী ব্যবহার করে) অন্য কোনও কিছুতে সেট করা থাকতে পারে restart

সমাধান: কোনও কিছু আপনার ধারককে দূষিত করেছে। একটি নতুন কন্টেইনার শুরু করা আদর্শভাবে কাজটি করা উচিত।


3

আপনি যদি এমন কোনও systemdপরিষেবা তৈরি করেন যা এটির ক্ষেত্রেও হতে পারে :

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

1

আমার ক্ষেত্রে এনজিনেক্স কনটেইনারটি পুনরায় চালু করা ছিল, আমি এনজিএনএক্স ধারকটির লগগুলি পরীক্ষা করে জানতে পেরেছিলাম যে একটি অপ্রয়োজনীয় ডোমেনের .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

আপনার ডকার ইএমএল ফাইলটিতে এই প্যারামগুলি যুক্ত করার চেষ্টা করুন

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"

0

আমার ক্ষেত্রে আমি সরিয়েছি

Restart=always

যুক্ত

tty: true

এবং শেলটি খোলার জন্য নীচের কমান্ডটি কার্যকর করা হয়েছে (ডেমন প্রক্রিয়া, কারণ ডকার কম্পোজ ফাইলটি পড়ে এবং ফাইলের শেষ লাইনে পৌঁছানোর পরে ধারকটি থামিয়ে দেয়)।

docker-compose up -d

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.