ডকার - উবুন্টু - বাশ: পিং: আদেশটি পাওয়া যায় নি


336

আমি উবুন্টু চালিত একটি ডকার কন্টেইনার পেয়েছি যা আমি নিম্নলিখিতভাবে করেছি:

docker run -it ubuntu /bin/bash

তবে এটি আছে বলে মনে হয় না ping। যেমন

bash: ping: command not found

আমার কি এটি ইনস্টল করা দরকার?

অনুপস্থিত মনে হচ্ছে একটি চমত্কার বেসিক কমান্ড। আমি চেষ্টা করেছি whereis pingযা কিছুই রিপোর্ট করে না।


6
এটি কোনও ডকার চিত্রের জন্য ন্যূনতম হওয়া সম্পূর্ণভাবে উপযুক্ত। বেশিরভাগ ক্ষেত্রে, একটি ধারক কখনও একক অ্যাপ্লিকেশন চালানো ছাড়া কিছুই করতে পারে না - অ্যাপ্লিকেশনটির প্রয়োজন হয় না এমন কিছু কেন ইনস্টল করবেন?
চার্লস ডাফি

3
আপনি যদি ডায়াগনস্টিকস কেবল চালনা করতে চান তবে ব্যস্তবক্স চালানো সহজ হতে পারে (যার চিত্রটিতে পিং অন্তর্ভুক্ত রয়েছে), যেমন: ডকার রান -িট --আরএম ব্যস্তবক্স পিং মাই-সার্ভার।
ফ্রান্সিস নরটন

উত্তর:


687

ডকার চিত্রগুলি বেশ ন্যূনতম, তবে আপনি pingআপনার অফিসিয়াল উবুন্টু ডকার ইমেজে এটি ইনস্টল করতে পারেন :

apt-get update
apt-get install iputils-ping

pingআপনার চিত্রের দরকার নেই এমন সম্ভাবনা রয়েছে এবং পরীক্ষার উদ্দেশ্যে এটি কেবল ব্যবহার করতে চান। উপরে উদাহরণ আপনাকে সাহায্য করবে।

তবে যদি আপনার ইমেজে উপস্থিত থাকতে আপনার পিংয়ের প্রয়োজন হয় তবে আপনি একটি Dockerfileবা commitএকটি ধারক তৈরি করতে পারেন যা আপনি উপরের কমান্ডগুলিকে একটি নতুন ছবিতে চালিয়েছেন।

সমর্পণ

docker commit -m "Installed iputils-ping" --author "Your Name <name@domain.com>" ContainerNameOrId yourrepository/imagename:tag

Dockerfile:

FROM ubuntu
RUN apt-get update && apt-get install -y iputils-ping
CMD bash

দয়া করে নোট করুন যে ডকারের চিত্র তৈরির জন্য সর্বোত্তম অনুশীলন রয়েছে, যেমন অ্যাপ্লিকেশন ক্যাশে ফাইলগুলি সাফ করার পরে এবং ইত্যাদি etc.


Temporary failure resolving 'security.ubuntu.com'নেটওয়ার্কিং উপস্থিত না থাকায় স্পষ্টতই এপট-গেট ব্যর্থ হয় ।
পাভেল নিডোবা

32

এই উবুন্টু জন্য Docker হাব পৃষ্ঠা এবং এই কিভাবে এটি নির্মিত হয়। এটিতে কেবল (কিছুটা) কম ন্যূনতম প্যাকেজ ইনস্টল করা আছে, সুতরাং আপনার যদি অতিরিক্ত কিছু প্রয়োজন হয় তবে এটি নিজে ইনস্টল করতে হবে।

apt-get update && apt-get install -y iputils-ping

তবে সাধারণত আপনি একটি "ডকফেরফাইল" তৈরি করে এটি তৈরি করতে চান:

mkdir ubuntu_with_ping
cat >ubuntu_with_ping/Dockerfile <<'EOF'
FROM ubuntu
RUN apt-get update && apt-get install -y iputils-ping
CMD bash
EOF
docker build -t ubuntu_with_ping ubuntu_with_ping
docker run -it ubuntu_with_ping

টিউটোরিয়ালগুলি সন্ধান করার জন্য এবং বিদ্যমান ডকফায়াইলগুলি সাধারণত কীভাবে কাজ করে তা দেখতে ব্রাউজ করুন দয়া করে :) উদাহরণস্বরূপ কমান্ডের apt-get clean && rm -rf /var/lib/apt/lists/*পরে চলার মাধ্যমে চিত্রের আকার হ্রাস করা উচিত apt-get install


echo -eআসলে পসিএক্স শ স্ট্যান্ডার্ডকে অস্বীকার করে , যা -eএটির আউটপুট মুদ্রণ ছাড়া কিছু করার অনুমতি দেয় না । (এমনকি ব্যাশের কয়েকটি সংস্করণ সহ এটিও ডিফল্ট আচরণ)। printfপরিবর্তে ব্যবহার করুন: printf '%s\n' "FROM ubuntu" "RUN apt-get update && apt-get install -y iputils-ping" "CMD bash"এবং উপরের লিঙ্কযুক্ত মান নথির অ্যাপ্লিকেশন ব্যবহারের অংশটি দেখুন।
চার্লস ডাফি

echo -eপশিক্স মোডে যখন --enable-xpg-echo-defaultউপযুক্ত পরিবেশের ভেরিয়েবল বা অন্যান্য রানটাইম কনফিগারেশন সংকলন করা হয় তখনও বাশ আপনি যেভাবে প্রত্যাশা করেন তা সমর্থন করে না (তবে পরিবর্তে একটি মান-সম্মতিযুক্ত আচরণ থাকবে) ।
চার্লস ডাফি

(পসিক্স -nপ্রথম আর্গুমেন্ট হিসাবে যখন দেওয়া হয় বা কোনও ব্যাকস্ল্যাশ আক্ষরিক উপস্থিত থাকে তখন প্রতিধ্বনি বাস্তবায়ন-সংজ্ঞায়িত পদ্ধতিতে আচরণের অনুমতি দেয় - তবে তারপরেও, এটি বাস্তবায়ন-সংজ্ঞায়িত , মান-গ্যারান্টিযুক্ত নয়, তাই আচরণ পৃথক শেলের উপর নির্ভরশীল ব্যাবহৃত হচ্ছে).
চার্লস ডাফি

মন্তব্য এবং উন্নতির জন্য ধন্যবাদ, "কপি-পেস্ট" বন্ধুত্বপূর্ণ উদাহরণটি চিন্তার পরে আরও ছিল।
নিকোনিহার

7

সাধারণত মানুষ উবুন্টু / সেন্টোস-এর সরকারী চিত্র টানেন তবে তারা বুঝতে পারেন না যে এই চিত্রগুলি ন্যূনতম এবং এর শীর্ষে কোনও জিনিস নেই।

উবুন্টুর জন্য, এই চিত্রটি ক্যানোনিকাল দ্বারা সরবরাহিত অফিশিয়াল রুটফ টারবলগুলি থেকে তৈরি। এটি উবুন্টুর একটি সর্বনিম্ন ইনস্টল হিসাবে দেওয়া হয়েছে, এই চিত্রটিতে কেবল সি, সিইউটিএফ -8, এবং পসিক্স স্থানীয়ভাবে ডিফল্টরূপে অন্তর্ভুক্ত রয়েছে।

কেউ নেট-টুলস ইনস্টল করতে পারে (এতে আইফোনফিগ, নেটস্ট্যাট অন্তর্ভুক্ত), আইপি-ইউসস (পিং অন্তর্ভুক্ত) এবং অন্যান্য অন্যান্য পছন্দসই কার্ল ইত্যাদি পাত্রে রাখে এবং ধারক থেকে চিত্র তৈরি করতে পারে বা ডকফেরাইল লিখতে পারে যা চিত্র তৈরি করার সময় এই সরঞ্জামগুলি ইনস্টল করবে।

নীচে ডকফাইফাইল উদাহরণ রয়েছে, এ থেকে চিত্র তৈরি করার সময় এটিতে এই সরঞ্জামগুলি অন্তর্ভুক্ত থাকবে:

FROM vkitpro/ubuntu16.04
RUN     apt-get  update -y \
&& apt-get upgrade -y \
&& apt-get install iputils-ping -y \
&& apt-get install net-tools -y \
CMD bash

অথবা বেস ইমেজ থেকে ধারক প্রবর্তন করুন এবং ধারকগুলিতে এই ইউটিলিটিগুলি ইনস্টল করুন এবং তারপরে চিত্রটিতে প্রতিশ্রুতিবদ্ধ। ডকার কমিট - এম "কোনও বর্ণনামূলক বার্তা" ধারক_ আইডি_নাম: সর্বশেষতম

এই চিত্রটিতে সমস্ত কিছু ইনস্টল করা থাকবে।


6

বিকল্পভাবে আপনি একটি ডকার চিত্র ব্যবহার করতে পারেন যা ইতিমধ্যে পিং ইনস্টল রয়েছে, যেমন ব্যস্তবক্স :

docker run --rm busybox ping SERVER_NAME -c 2

এটি একটি সমাধান, তবে কেবল পিং চালানোর জন্য একটি চিত্র তৈরি করা আমার পক্ষে ওভারকিল বলে মনে হচ্ছে। আমি বরং apt-get iputils-pingএটির প্রয়োজন এমন চিত্রটি চাই ।
রেনাতোইরাউজোক

1

প্রতিবার আপনি এই ধরণের ত্রুটি পান

bash: <command>: command not found
  • এই কমান্ডটি সহ হোস্টে ইতিমধ্যে এই সমাধানটি নিয়ে কাজ করছে :

    dpkg -S $(which <command>)
    
  • সেই প্যাকেজটি ইনস্টল করে কোনও হোস্ট নেই? এটি চেষ্টা করুন :

    apt-file search /bin/<command>
    

1

কখনও কখনও, ডকারে লিনাক্সের সর্বনিম্ন ইনস্টলেশন পথটিকে সংজ্ঞায়িত করে না এবং তাই এটি ব্যবহার করে পিং কল করা প্রয়োজন ....

cd /usr/sbin
ping <ip>

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