অনুশীলনে আমি একটি ধারক শুরু করার জন্য :
docker run a8asd8f9asdf0
যদি মামলা হয়, কি করে:
docker start
না?
ম্যানুয়ালটিতে বলা হয়েছে
এক বা একাধিক থামানো পাত্রে শুরু করুন
execute?
অনুশীলনে আমি একটি ধারক শুরু করার জন্য :
docker run a8asd8f9asdf0
যদি মামলা হয়, কি করে:
docker start
না?
ম্যানুয়ালটিতে বলা হয়েছে
এক বা একাধিক থামানো পাত্রে শুরু করুন
execute?
উত্তর:
এটি একটি খুব গুরুত্বপূর্ণ প্রশ্ন এবং উত্তরটি খুব সহজ, তবে মৌলিক:
docker run IMAGE_ID এবং না docker run CONTAINER_IDdocker stop CONTAINER_ID, আপনি একই ধারকটি কমান্ডের সাথে পুনরায় চালু করতে পারেন docker start CONTAINER_IDএবং ডেটা এবং সেটিংস একই হবে।docker rm container_id। অন্যদিকে, -vকমান্ড লাইনে অপশনটি স্পষ্টভাবে সরবরাহ না করা হলে ভলিউম ডেটা কনটেইনার অপসারণে বেঁচে থাকবে । হোস্ট সিস্টেমে ভলিউম অবস্থানটি সরাসরি পরিদর্শন করা যেতে পারে। এই নিবন্ধটি দেখুন
& শেষে প্রয়োজন run? আমার এটি গণনার (24 ঘন্টা) পরিষেবা হিসাবে দরকার
runএকটি ইমেজ চালায়startএকটি পাত্রে শুরু ।docker runডক উল্লেখ করেন নাই:
docker runকমান্ড প্রথম সৃষ্টি নিদিষ্ট চিত্রের উপর একটি লেখার যোগ্য ধারক স্তর, এবং তারপর শুরু হয় নিদিষ্ট কমান্ড ব্যবহার করে এটি।অর্থাৎ ডকার রান
/containers/createতখনকার এপিআই এর সমান/containers/(id)/start।
আপনি কোনও বিদ্যমান ধারক চালাচ্ছেন না, আপনি এটিতে ডেকার করেন (যেহেতু ডকার 1.3) ।
আপনি একটি প্রস্থানিত ধারক পুনরায় আরম্ভ করতে পারেন ।
-iকরতে হবে না docker run? আমি বোঝাতে চাইছি, একটি ধারক চালানোর জন্য ডকার রানের একটি চিত্র দরকার।
একটি উদাহরণ সহ ব্যাখ্যা:
আপনার কম্পিউটারে একটি গেম (আইসো) চিত্র রয়েছে তা বিবেচনা করুন।
যখন তুমি run (ভার্চুয়াল ড্রাইভ হিসাবে আপনার চিত্রটি মাউন্ট করবেন), ভার্চুয়াল ড্রাইভের সমস্ত গেমের সামগ্রী সহ ভার্চুয়াল ড্রাইভ তৈরি হয় এবং গেম ইনস্টলেশন ফাইলটি স্বয়ংক্রিয়ভাবে চালু হয়। [আপনার ডকার ইমেজ চালানো - একটি ধারক তৈরি এবং তারপরে এটি শুরু করুন]]
আপনি যখন এটি stop(ডকার থামার অনুরূপ) করেন তখন ভার্চুয়াল ড্রাইভটি এখনও উপস্থিত থাকে তবে সমস্ত প্রক্রিয়া বন্ধ করে দেয়। [কনটেইনারটি মুছে ফেলা না হওয়া পর্যন্ত বিদ্যমান]
এবং যখন আপনি করেন start(ডকার শুরু করার মতো), ভার্চুয়াল ড্রাইভ থেকে গেমস ফাইলগুলি এর প্রয়োগ শুরু করে। [বিদ্যমান ধারক শুরু]
এই উদাহরণে - গেমের চিত্রটি আপনার ডকার চিত্র এবং ভার্চুয়াল ড্রাইভটি আপনার ধারক।
daniele3004 এর উত্তর ইতিমধ্যে বেশ ভাল।
শুধু একটি দ্রুত এবং ময়লা আমার মত মানুষ যারা আপ দ্রবণ জন্য সূত্র runএবং startসময়ে সময়ে:
docker run [...]= docker pull [...]+docker start [...]
"...docker run is equivalent to the API /containers/create then /containers/(id)/start.(সূত্র: docs.docker.com/engine/reference/commandline/run )
runকমান্ড চিত্র থেকে একটি ধারক তৈরি করে এবং তারপরে এই ধারকটিতে মূল প্রক্রিয়া শুরু করে। run --rmপতাকা সহ এটি চালানো আপনাকে পরে অকেজো মরা পাত্রে অপসারণের ঝামেলা বাঁচিয়ে দেবে এবং আপনাকে অস্তিত্ব docker startএবং docker removeসম্পূর্ণরূপে উপেক্ষা করার অনুমতি দেবে ।
run কমান্ড কয়েকটি ভিন্ন কাজ করে:
docker run --name dname image_name bash -c "whoami"
docker psbash -c "whoami"। যদি কেউ docker run --name dname image_nameকমান্ডার চালানোর আদেশ না দিয়ে রান করে তবে তা অবিলম্বে বন্ধ হয়ে যাবে intodocker removeএকই নামে কন্টেইনার চালু করার আগে একজনকে চালাতে হবে ।একবার স্বয়ংক্রিয়ভাবে বন্ধ হয়ে গেলে ধারকটি কীভাবে সরিয়ে ফেলা যায়? কমান্ডেএকটি--rmপতাকা যুক্তকরুনrun:
docker run --rm --name dname image_name bash -c "whoami"
কীভাবে একক পাত্রে একাধিক কমান্ড কার্যকর করা যায়? সেই মূল প্রক্রিয়াটি মারা যাওয়া থেকে রক্ষা করে। --detachedপতাকাসহ শুরুতে কিছু অকেজো কমান্ড চালিয়েএবং তারপরে প্রকৃত কমান্ডগুলি চালানোর জন্য "এক্সিকিউট" ব্যবহার করেএটি করা যেতে পারে:
docker run --rm -d --name dname image_name tail -f /dev/null
docker exec dname bash -c "whoami"
docker exec dname bash -c "echo 'Nnice'"
আমাদের তখন কেন দরকার docker stop? এই দীর্ঘস্থায়ী ধারক যে আমরা অবিরাম আদেশের সঙ্গে পূর্ববর্তী স্নিপেট সালে চালু বন্ধ করতেtail -f /dev/null।