অনুশীলনে আমি একটি ধারক শুরু করার জন্য :
docker run a8asd8f9asdf0
যদি মামলা হয়, কি করে:
docker start
না?
ম্যানুয়ালটিতে বলা হয়েছে
এক বা একাধিক থামানো পাত্রে শুরু করুন
execute
?
অনুশীলনে আমি একটি ধারক শুরু করার জন্য :
docker run a8asd8f9asdf0
যদি মামলা হয়, কি করে:
docker start
না?
ম্যানুয়ালটিতে বলা হয়েছে
এক বা একাধিক থামানো পাত্রে শুরু করুন
execute
?
উত্তর:
এটি একটি খুব গুরুত্বপূর্ণ প্রশ্ন এবং উত্তরটি খুব সহজ, তবে মৌলিক:
docker run IMAGE_ID
এবং না docker run CONTAINER_ID
docker 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 ps
bash -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
।