ডকার ইঞ্জিন এবং একটি ডকার পাত্রে চলছে কিনা তা কীভাবে পরীক্ষা করবেন?


103

একটি স্ক্রিপ্টে, আমাকে যাচাই করা দরকার:

ক) ডকার ইঞ্জিনটি কি চলছে?
খ) একটি ধারক নাম দেওয়া হয়েছে, যে ডকার পাত্রে চলছে?

[এই প্রশ্নের প্রাথমিক শব্দবন্ধটি ছিল দ্ব্যর্থক, কিছু লোক এটিকে "চেক ডকার ইঞ্জিন" এবং অন্যরা "চেক ডকারের ধারক" হিসাবে ব্যাখ্যা করেছিলেন]


4
কোনও ডকার কমান্ড (ডকার -v বাদে) ডকের পিএস এর মতো
গ্লেন পিয়ার্স

docker attach containerName
মাতিয়া ডায়নোসর

4
বা চেষ্টা করুন docker ps
মাতটিয়া ডায়নোসর

4
sudo systemctl স্থিতি ডকার
Duk

4
docker ps----- এই কমান্ডটি কেবল রান্নার পাত্রে প্রদর্শিত হবে
সুহাইব

উত্তর:


109

আপনি যদি কোনও নির্দিষ্ট ধারক খুঁজছেন তবে চালাতে পারেন:

if [ "$( docker container inspect -f '{{.State.Running}}' $container_name )" == "true" ]; then ...

ক্র্যাশ লুপে থাকা কনটেইনার নিয়ে সমস্যাগুলি এড়াতে এবং এটি শেষ হয়ে গেছে তা দেখানো থেকে ক্রমাগত পুনরায় আরম্ভ করার জন্য, উপরেরটি পরীক্ষা করে উন্নত করা যেতে পারে Status ক্ষেত্রটি :

if [ "$( docker container inspect -f '{{.State.Status}}' $container_name )" == "running" ]; then ...

আপনি যদি জানতে চান যে ডকার্ড স্থানীয় মেশিনে নিজেই চলছে এবং আপনি সিস্টেম ইনস্টল করেছেন, আপনি চালাতে পারেন:

systemctl show --property ActiveState docker

এছাড়াও আপনি সঙ্গে Docker সংযোগ করতে পারেন docker infoবা docker versionআর তারা বের ত্রুটি হলে ডেমন অনুপলব্ধ।


আপনি কীভাবে একটি বাশ স্ক্রিপ্টের বিবৃতিটির docker inspect …ভিতরে রাখবেন if?
ফ্রান্সোইস রোমেন

15
if [ $(docker inspect -f '{{.State.Running}}' $container_name) = "true" ]; then echo yup; else echo nope; fi
বিএমবিচ

4
আমি docker inspect -f '{{.State.Restarting}}' $container_nameআমার ধারকটিকে পুনরায় চালু করার নীতি দিয়ে শুরু করার পরে ব্যবহার করি, যদিও এখানে "সত্য" আপনি এড়াতে চান তা এখানে।
stav meir

4
বাশ এবং ডকার উভয়ই উপরের ifবিবৃতিটির জন্য অভিযোগ করবে , যখন ধারকটি চলছে না। এটি মিথ্যা মামলার জন্য অযাচিত স্ক্রু আড়াল করে: if [ "$(docker inspect -f '{{.State.Running}}' ${container_name} 2>/dev/null)" = "true" ]; then echo yup; else echo nope; fi
ট্রেভর

4
@ মারকোলেকোভিচ শোনার মতো আপনি উপরের অংশটি "আপনি সিস্টেমে ইনস্টলড করেছেন" মিস করেছেন।
বিএমইচ

48

আমি ব্যবহার শেষ

docker info

ডকার ইঞ্জিন চালু থাকলে বাশ স্ক্রিপ্টের সাথে পরীক্ষা করতে।


6
এই উত্তর আন্ডাররেটেড হয়। এটি ক্রস প্ল্যাটফর্ম এবং দ্রুত পাস / ব্যর্থ হয়।
অ্যান্ডি ফ্লেমিং

4
docker info > /dev/null 2>&1আপনার যদি আউটপুটটির প্রয়োজন না হয়
বাগীম্যাকব্যাগফিক্স

22

আপনি ব্যবহার করে ডকারের অবস্থা পরীক্ষা করতে পারেন: systemctl is-active docker

➜  ~  systemctl is-active docker
active

আপনি এটি হিসাবে ব্যবহার করতে পারেন:

➜  ~  if [ "$(systemctl is-active docker)" = "active" ]; then echo "is alive :)" ; fi
is alive :)

➜  ~  sudo systemctl stop docker

➜  ~  if [ "$(systemctl is-active docker)" = "active" ]; then echo "is alive :)" ; fi
 * empty response *

এটি প্রশ্নের উত্তর দেয় না। "ধারক নাম দিয়ে চেক করতে"
jens.klose

হ্যাঁ মনে হচ্ছে প্রশ্নটি অস্পষ্ট, আপনার ব্যবহার করা উচিত কনটেইনারটি চলছে কিনা তা পরীক্ষা করার জন্য docker ps --filter name=pattern, আপনি কেবল এই পতাকাটি যুক্ত করে কেবল স্ট্যাটাসটি পরীক্ষা করতে আউটপুটটি ফর্ম্যাট করতে পারেন:--format {{.Status}}
হেরানান গার্সিয়া

16

সমস্ত ধারক তালিকা:

docker container ls -a

ls = তালিকা
-a = সব

"স্থিতি" কলামটি পরীক্ষা করুন


4
এটাই আমার দরকার, কারণ এটি প্রতিটি প্ল্যাটফর্মে কাজ করে !!
রোলজি

সহজ এবং সহজ ... কাজ
আরমতি

15

ওএস এক্স ব্যবহারকারীদের জন্য (মোজভেভ 10.14.3)

ডকার চলমান আছে কিনা তা পরীক্ষা করতে আমি আমার বাশ স্ক্রিপ্টে যা ব্যবহার করি তা এখানে

# Check if docker is running
if ! docker info >/dev/null 2>&1; then
    echo "Docker does not seem to be running, run it first and retry"
    exit 1
fi


11

কোনও ডকার কমান্ড (ব্যতীত docker -v), পছন্দ করুনdocker ps যদি ডকার চলমান থাকে তবে আপনি কিছুটা কার্যকর প্রতিক্রিয়া পাবেন, অন্যথায় আপনি একটি বার্তা পাবেন যাতে "আপনার ডকার ডেমন আপ এবং চলছে?"

আপনি নিজের টাস্ক ম্যানেজারকেও পরীক্ষা করতে পারেন।


10

কখনও কখনও আপনি পুরো ধারকের নাম জানেন না, এই ক্ষেত্রে এটি আমার পক্ষে কাজ করেছিল:

if docker ps | grep -q keyword
then 
    echo "Running!"
else
    echo "Not running!"
    exit 1
fi

আমরা সমস্ত চলমান ধারক প্রক্রিয়া তালিকাভুক্ত করি ( docker ps -aআমাদের দেখায় যে এটি চলমান নয়, তবে এটি আমার প্রয়োজন যা নয়), আমরা একটি নির্দিষ্ট শব্দ ( grepঅংশ) অনুসন্ধান করি এবং কেবলমাত্র আমরা যদি কমপক্ষে এমন কোনও চলমান ধারক খুঁজে না পাই যার নাম আমাদের থাকে কীওয়ার্ড



5

আপনি এই আদেশটি দিয়ে পরীক্ষা করতে পারেন systemctl status dockerএটি ডকারের স্থিতি প্রদর্শন করবে। আপনি ব্যবহার করতে পারেন শুরু করতে চান তাহলে systemctl start dockerপরিবর্তে systemctlআপনার সাথে আরো চেষ্টা করতে পারেন service, service docker statusএবং service docker startযথাক্রমে।


4
এই উত্তরটি ধরে নিয়েছে যে শেষ-ব্যবহারকারী systemdতাদের উদ্যোগ হিসাবে ব্যবহার করছে।
রাফায়েল

systemctl status dockerসঠিকভাবে শো ডক পরিষেবা চলছে। ধন্যবাদ.
imsrgadich

4

কোনও নির্দিষ্ট ডকারের ধারক নিম্নলিখিত কমান্ডটি ব্যবহার করছে কি না তাও আপনি পরীক্ষা করতে পারেন:

docker inspect postgres | grep "Running"

এই কমান্ডটি পরীক্ষা করবে উদাহরণস্বরূপ আমার পোস্টগ্র্রেস ধারকটি চলছে কিনা এবং "চালানো" হিসাবে আউটপুট ফেরত দেবে : সত্য

আশাকরি এটা সাহায্য করবে.


আমি ঠিক এটিই খুঁজছিলাম। এবং এটি কাজ করে। (লোকেরা যখন কিছু ভোট দেয় কেন এটি ভাল, তাই
ন্যুবগুলি

আমি ভোট না, কিন্তু "ত্রুটি: জাতীয় কোনও বস্তু: postgres"
জিইডি

3

চালান:

docker version

যদি ডকার চলমান থাকে আপনি দেখতে পাবেন:

Client: Docker Engine - Community
 Version:           ...
 [omitted]

Server: Docker Engine - Community
 Engine:
  Version:          ...
 [omitted]

যদি ডকার চলমান না থাকে তবে আপনি দেখতে পাবেন:

Client: Docker Engine - Community
 Version:           ...
 [omitted]

Error response from daemon: Bad response from Docker engine

2

অন্তর্নিহিত লক্ষ্যটি যদি "ডকার শুরু হয় তখন আমি কীভাবে একটি ধারক শুরু করতে পারি?"

আমরা ডকারের পুনঃসূচনা নীতিটি ব্যবহার করতে পারি

বিদ্যমান পাত্রে পুনঃসূচনা নীতি যুক্ত করতে:

ডকার: ইতিমধ্যে তৈরি করা একটি ধারকটিতে পুনঃসূচনা নীতি যুক্ত করুন

উদাহরণ:

docker update --restart=always <container>

1

ম্যাকের উপর আপনি ছবিটি দেখতে পাবেন:

এখানে চিত্র বর্ণনা লিখুন

আপনি যদি ডকার আইকনে ডান ক্লিক করেন তবে আপনি দেখতে পাবেন:

এখানে চিত্র বর্ণনা লিখুন

বিকল্পভাবে:

docker ps

এবং

docker run hello-world


1

টার্মিনালে এই কমান্ডটি চালান:

docker ps

যদি ডকার চলমান না থাকে তবে আপনি এই বার্তাটি পাবেন:

ডেমন থেকে ত্রুটি প্রতিক্রিয়া: ডায়াল ইউনিক্স ডকার.আরও.সক: সংযোগ: সংযোগ প্রত্যাখ্যান করা হয়েছে


0

আমি কীভাবে এসএসএইচ.রুনে চেক করব:

systemctl

যদি প্রতিক্রিয়া: ডি-বাস সংযোগ পেতে ব্যর্থ: অপারেশন অনুমোদিত নয়

এটি একটি ডকার বা ডাব্লুএসএল ধারক।


0

docker ps -a

আপনি জীবিত বা মৃত কিনা তা সমস্ত ডকার পাত্রে দেখতে পাবেন।

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