ডকার এক্সেক দিয়ে 2 কমান্ড কিভাবে চালানো যায়


89

আমাকে ডকার এক্সেক দিয়ে 2 কমান্ড চালাতে হবে। আমি ডকারের ধারক থেকে একটি ফাইল অনুলিপি করছি এবং ssh এর মতো কিছু ব্যবহার করার জন্য শংসাপত্রাদি নিয়ে কাজ করতে চাই না। এই কমান্ডটি একটি ফাইল অনুলিপি করে:

sudo docker exec boring_hawking tar -cv /var/log/file.log | tar -x

তবে এটি একটি সাব-ডাইরেক্টরির ভার / লগ তৈরি করে, আমি এড়াতে চাই তাই যদি আমি ডকার পাত্রে এটি করতে পারি তবে আমার ভাল হওয়া উচিত:

cd /var/log ; tar -cv ./file.log

আমি কীভাবে ডকারকে এক্স 2 রান করতে পারি?

উত্তর:


138

এটির উত্তরের দিকে নিয়ে যায়: ডকার কমান্ড লাইনে পালানোর চরিত্রটি আমি এটি করে শেষ করেছি:

sudo docker exec boring_hawking bash -c 'cd /var/log ; tar -cv ./file.log' | tar -x

সুতরাং এটি কাজ করে, সাজানোর জন্য, প্যারামিটার দিয়ে ওয়ান ব্যাশ কমান্ডটি চালাচ্ছে যা আমি চালাতে চাই 2 টি কমান্ড।


আপনাকে অনেক ধন্যবাদ, এটি আমাকে অনেক সাহায্য করে
আনসেইড

যদি আপনি কমান্ডের ভিতরে ডাবল উদ্ধৃতি পেয়ে -c "cd /var/log; tar -cv \"$1\""থাকেন তবে ফাইলটি 1 প্যারামিটারে থাকলে আপনি যেমনটি করতে পারেন
জেড

28

প্রায়শই, ওপি-র প্রশ্নের মতো বেশ কয়েকটি কমান্ডের প্রয়োজন হয় ওয়ার্কিং ডিরেক্টরি পরিবর্তন করা।

তার জন্য, ডকারের এখন -wওয়ার্কিং ডিরেক্টরিটি নির্দিষ্ট করার একটি বিকল্প রয়েছে । যেমন বর্তমান ক্ষেত্রে

docker exec -w /var/log boring_hawking tar -cv ./file.log

সত্যিই দরকারী, এটি যাওয়ার উপায়।
টর্টেলি ইজিনিয়ার

এই ঠিক আমি খুঁজছিলাম ছিল!
ক্লে মিশেল

13

অন্য যে কেউ এরজন্য হোঁচট খায় এবং আরও জটিল স্ক্রিপ্ট কার্যকর করার জন্য একাধিক কমান্ড নির্দিষ্ট করার জন্য আলাদা উপায় চান:

cat <<EOF | docker exec --interactive boring_hawking sh
cd /var/log
tar -cv ./file.log
EOF

আপনি আরও জটিল স্ক্রিপ্ট কার্যকর করতে চাইলে এটি একটি খুব সুন্দর পাঠযোগ্য সমাধান। এটি আরও বেশি ভোটের দাবিদার;)
স্লাভা ফোমিন ২ য়

আমি the input device is not a TTYএই পদ্ধতির সাথে একটি ত্রুটি
পাচ্ছি

--interactiveযে যত্ন নিতে অনুমিত যদি যে ক্ষেত্রে তারপর আমি করছি না নিশ্চিত আপনি এই কিভাবে ব্যবহার করছেন উপর বৃহত্তর প্রেক্ষাপটে করেও যাচ্ছে নয়।
zbrunson

5

যদি অন্য কেউ এখানে দুর্দান্ত جوابের জন্য আসে, তবে ডকের ধারক থেকে একটি ফাইল অনুলিপি করার জন্য ওপি এর মূল সমস্যাটি (ওপি'র ওপ ..?) আরও ভাল উপায় চায় তবে এখন একটি docker cpআদেশ রয়েছে যা এটি করবে: https: //docs.docker.com/engine/references/commandline/cp/


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