আমি কীভাবে ডকারফাইলে একটি ডকার উদাহরণ চালাব?


101

আমি অবশেষে বুঝতে পারি কীভাবে ডকার আপ এবং দৌড়াতে হয়।

docker run --name my-forum-nodebb --link my-forum-redis:redis -p 80:80 -p 443:443 -p 4567:4567 -P -t -i nodebb/docker:ubuntu

আমি এটিকে একটি redis উদাহরণের সাথে সংযুক্ত করেছি, দুর্দান্ত।

এটি স্ক্র্যাচ থেকে এসেছে এবং আমি ধরে নিই যে আমি যখন রেডিস উদাহরণটি তৈরি করেছি

docker run --name my-forum-redis -d -p 6379:6379 nodebb/docker:ubuntu-redis

এটি একটি দূরবর্তী রেপো থেকে চিত্র টান?

নোডিবি একটি Dockerfile https://github.com/NodeBB/NodeBB/blob/master/Dockerfile সরবরাহ করে আমি কীভাবে এটি ব্যবহার করব তা সম্পর্কে নিশ্চিতভাবে আমি নিশ্চিত নই। আমি ধরে নিচ্ছি যে আমি আমার দূরবর্তীটিতে এই ডকফেরিলটিকে কল করে কোনওভাবে স্থানীয় পরিবেশ তৈরি করতে পারি।

এটা কি সঠিক? যদি তা হয় তবে আমি কীভাবে স্থানীয় উদাহরণটি দূরবর্তীকে নির্দেশ করে তৈরি করতে পারি?


আপনি আপনার স্থানীয় পরিবেশে ডকার চিত্রটি তৈরি করতে এবং এটিকে স্থানীয়ভাবে টানতে পারেন
BMW

$ বিড়াল ডকফাইফাইল | ডকার বিল্ড -টি <ইমেজ_নাম> - # হাইফেনের কথা মনে করুন
jbobilopez

উত্তর:


103

ফাইলটি ডাউনলোড করুন এবং একই ডিরেক্টরি থেকে রান করুন docker build -t nodebb .

এটি আপনাকে আপনার স্থানীয় মেশিনে এমন একটি চিত্র দেবে যার নাম নোডব্ব যা আপনি একটি ধারক প্রবর্তন করতে পারবেন যার মাধ্যমে docker run -d nodebb(আপনি নিজের নিজের নামে নোডাবব পরিবর্তন করতে পারবেন )।


4
কিভাবে কাজ করে? আমি যদি কেবল ডকফেরাইল হয়ে থাকি তবে এটি আমার প্রকল্প সম্পর্কে কীভাবে জানতে পারে? ডকফাইফিলের কোনও লিঙ্ক আছে? তারপরে আমি ধরে নিচ্ছি যদি সেখানে ডকার হ্যান্ডেলগুলি প্যাকেজিং করে এমন একটি নতুন চিত্র যা আমি আমার সার্ভারে স্থানান্তর করতে পারি। এই প্যাকেজিংয়ে এটি আমার প্রকল্পের সমস্ত সম্পদ শোষণ করে? দুঃখিত যদি আমি অজ্ঞতা বোধ করি তবে ডকার আমার কাছে একটি নতুন ধারণা তবে আমি শেখা উপভোগ করছি।
মাইকেল জোসেফ অব্রি

4
উপায় দ্বারা ধন্যবাদ এবং <> আপনার উদাহরণে কী উপস্থাপন করে আপনি কেন <নোডব </ b> বেছে নিলেন?
মাইকেল জোসেফ অব্রি

কোনও ডকার ধারক "আপনার" প্রকল্প সম্পর্কে জানে না, তারা খুব সাধারণ।
আন্দ্রেয়াস বিদারব্রান্ড

4
আপনার প্রদত্ত আদেশটি কার্যকর হয়নি তাই আমি চেষ্টা করেছি `ডকার তৈরির` docker build -t <nodebb> .আমাকে দেয় file exists: .। আমার একটি বিদ্যমান প্রকল্প রয়েছে যা এটি নিয়ে এসেছিল Dockerfileতাই আমি কেবল এটি ডিরেক্টরীতে চালিত করেছি।
মাইকেল জোসেফ

4
এটি আমার অনেক প্রশ্নের জবাব দিচ্ছে যদিও ডকস.ডোকার.com
মাইকেল জোসেফ

48

আপনি কোনও ডকফায়াইল থেকে কোনও ধারক শুরু করতে পারবেন না।

প্রক্রিয়াটি এরকম হয়:

ডকফরফাইল = [ docker build] => ডকার চিত্র = [ docker run] => ডকারের ধারক

একটি ধারক শুরু করতে (বা চালাতে) আপনার একটি চিত্র প্রয়োজন। একটি চিত্র তৈরি করতে আপনাকে ডকফাইফাইল [1] তৈরি করতে হবে।

[1]: আপনি docker importতারবাল বা আবার কোনও চিত্রও পেতে পারেন docker load


29

যদিও উপরের উত্তরগুলি ব্যবহারযোগ্য ছিল, এটি সত্যিই আমাকে সহায়তা করেছিল, তাই আমি এটি এখানেও রেখে দিচ্ছি।

ডকুমেন্টেশন থেকে :

কোনও প্রসঙ্গ নির্দিষ্ট করার পরিবর্তে, আপনি ইউআরএলতে একটি একক ডকফাইফাইল পাস করতে পারেন বা ফাইলটি STDIN এর মাধ্যমে পাইপ করতে পারেন। STDIN থেকে একটি ডকফাইফিল পাইপ করতে:

$ docker build - < Dockerfile

উইন্ডোজে পাওয়ারশেল দিয়ে আপনি চালাতে পারবেন:

Get-Content Dockerfile | docker build -

বিল্ডটি শেষ হয়ে গেলে কমান্ড রান করুন:

docker image ls

আপনি এরকম কিছু দেখতে পাবেন:

REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
<none>                     <none>              123456789        39 seconds ago      422MB

আপনার প্রকৃত চিত্র আইডিটি অনুলিপি করুন এবং তারপরে চালান

docker run 123456789

যেখানে শেষের নম্বরটি হ'ল আগের পদক্ষেপের আসল চিত্র আইডি

আপনি যদি চিত্রের আইডিটি মনে রাখতে না চান তবে আপনি নিজের ছবিটি ট্যাগ করতে পারেন

docker tag 123456789 pavel/pavel-build

যা আপনার চিত্রটিকে ট্যাগ করবে pavel/pavel-build


আশ্চর্যজনক যে 2020 সালে সেই প্রথম স্নিপেটটি খুঁজে পেতে এত দীর্ঘ সময় নিয়েছিল।
ফুলস্ট্যাকক্রিস

এটি আরও অনুষ্ঠানের সাথে গ্রহণযোগ্য উত্তর।
মিশেল

21

সোজা এবং সহজ সমাধান হ'ল:

docker build .
=> ....
=> Successfully built a3e628814c67
docker run -p 3000:3000 a3e628814c67

3000 - যে কোনও বন্দর হতে পারে

a3e628814c68 - সাফল্য বিল্ড কমান্ড দ্বারা দেওয়া হ্যাশ ফলাফল

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

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