একটি থামানো ডকারের ধারকটি পুনরায় আরম্ভ করুন


91

আমি নিম্নলিখিত কমান্ড সহ একটি চিত্র থেকে একটি ডকার ধারক চালু করি:

$ docker run -d myimage /bin/bash -c "mycommand"

"mycommand"শেষ হয়ে গেলে , ধারকটি বন্ধ হয়ে যায় (আমি মনে করি এটি বন্ধ হয়ে গেছে) তবে এটি মুছে ফেলা হয়নি, কারণ আমি এটি এই আদেশ দিয়ে দেখতে পারি:

$ docker ps -a

restartএকই পরামিতি সহ এই ধারকটির কোনও উপায় আছে এবং ডেটা উত্পন্ন করে রাখবে mycommand?


"ভলিউম" বা "হোস্ট ডিরেক্টরিটি মাউন্ট করা" আপনাকে সন্তুষ্ট করে? উল্লিখিত দস্তাবেজের মতো: ডকস.ডোকার.এলজিন
টিউটোরিয়ালস

উত্তর:


124

হ্যাঁ, যখন প্রাথমিক কমান্ডটি এর সম্পাদন শেষ করে তখন ধারকটি থামবে।

আপনি এটি ব্যবহার করে একটি থামানো ধারক শুরু করতে পারেন:

docker start container_name

আপনি যদি আপনার কমান্ডের আউটপুট দেখতে চান তবে আপনার -aiবিকল্পগুলি যুক্ত করতে হবে :

docker start -ai container_name

পুনশ্চ. আছে একটি docker restart container_nameকিন্তু যে একটি চলমান ধারক পুনরায় আরম্ভ করতে ব্যবহৃত হয় - আমি বিশ্বাস করেন যে আপনার ঘটনা না।


4
আমার ধারক প্রতিবার শুরু হওয়ার সাথে সাথেই বন্ধ হয়ে যায়। নিশ্চিত না যে এর পয়েন্ট কি। -Ai কমান্ডটি ব্যবহার করে এই প্রতিক্রিয়া পাওয়া যায়: প্রয়োজনীয় ফাইলগুলি খুলতে পারেনি: [এর্নো 2] এরকম কোনও ফাইল বা ডিরেক্টরি নেই: 'প্রয়োজনীয়তা.টিএসটিএসটি'
জিওএইডিসিক

@ জিওডেসিক আপনি আরও বিশদ সরবরাহ করতে পারেন? আপনি প্রয়োজনীয় ফাইলের বিষয়ে কী প্রয়োজন?
lmtx

4
@ জিওডেসিক, এটির সমস্যা সমাধানের জন্য, আমি এন্টিপয়েন্টটি পরিবর্তন করে কেবল স্লিপ 900 কমান্ডটি চালাতে পারি যা আমাকে তারপরে ধারকটির সাথে সংযোগ স্থাপন করতে এবং এর সাহায্যে কমান্ডগুলি চালানোর অনুমতি দেয় docker exec -it container_name bash। আমি যখন ধারকের ভিতরে থেকে কমান্ডটি চালালাম তখন আমার স্ক্রিপ্টটির প্রাথমিক প্রয়োগ কেন ব্যর্থ হচ্ছে তা আমি দেখতে পেলাম এবং আমি এটি স্থির করেছিলাম।
প্যাটস

@ প্যাটস আপনি কীভাবে আপনার সাথে একত্রিত startহয়েছেন দয়া করে ভাগ করতে পারেন sleep? আমি যে দৌড়াতে পারি সেই জায়গায় exec
পৌঁছাতে অক্ষম

11

প্রথম, $ docker ps -a সমস্ত পাত্রে (যা চলছে এবং যেগুলি থামানো হয়েছে) তা দেখায়, সুতরাং যে কারণে আপনি আপনার থামানো কন্টেইনারটি তালিকাভুক্ত দেখছেন না।

দ্বিতীয়ত, আপনি সহজেই একটি থামানো ধারক চালানো শুরু করতে পারেন:

$ docker start container_name

একবার ধারকটি শুরু হয়ে গেলে, আপনি আপনার আদেশটি এটি দিয়ে চালাতে পারেন:

$ docker exec -it container_name bash -c "mycommand"

আপনি আপনার ধারকটিতে যে জিনিসগুলি তৈরি করেন সেগুলি যতক্ষণ না এটি বিদ্যমান থাকে ততক্ষণ আপনার পাত্রে থাকবে। আপনার ধারক অপসারণ করা সত্ত্বেও আপনি যদি ডেটা রাখতে চান তবে আপনি একটি ভলিউম ব্যবহার করতে পারেন ।


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