অ্যান্ড্রয়েড

ডকফায়াইল দিয়ে কীভাবে ডকার চিত্র তৈরি করা যায়

Cemu 1.6.1 - স্বাস্থ্য ও নিরাপত্তা তথ্য

Cemu 1.6.1 - স্বাস্থ্য ও নিরাপত্তা তথ্য

সুচিপত্র:

Anonim

একটি ডকার চিত্র হ'ল ডকারের ধারকগুলির নীলনকশা যা অ্যাপ্লিকেশন এবং অ্যাপ্লিকেশনটি চালানোর জন্য আপনার প্রয়োজনীয় সমস্ত কিছু রয়েছে। একটি ধারক কোনও চিত্রের একটি রানটাইম উদাহরণ।

এই টিউটোরিয়ালে, আমরা ডকফাইফাইল কী, কীভাবে একটি তৈরি করতে হবে এবং ডকফাইফিলের সাহায্যে ডকার চিত্র কীভাবে তৈরি করবেন তা ব্যাখ্যা করব।

ডকফেরফিল কী

ডকফেরফিল হ'ল একটি পাঠ্য ফাইল যা কোনও চিত্র তৈরি করতে ব্যবহারকারী কমান্ড লাইনে চালাতে পারে এমন সমস্ত কমান্ড ধারণ করে। ইমেজটি তৈরি করতে ডকারের প্রয়োজনীয় সমস্ত নির্দেশাবলী এতে অন্তর্ভুক্ত রয়েছে।

ডকার চিত্রগুলি চিত্রের ডকফাইফাইলের নির্দেশাবলী উপস্থাপন করে এমন একটি সিস্টেম সিস্টেম স্তরগুলির সমন্বয়ে গঠিত যা একটি কার্যকরযোগ্য সফ্টওয়্যার অ্যাপ্লিকেশন তৈরি করে।

ডকার ফাইলটি নিম্নলিখিত ফর্মটি গ্রহণ করে:

# Comment INSTRUCTION arguments

INSTRUCTION কেস-সংবেদনশীল নয়, তবে কনভেনশনটি হল তার নামগুলির জন্য UPPERCASE ব্যবহার করা।

নীচে সর্বাধিক ব্যবহৃত ডকফেরফিল নির্দেশাবলীর সংক্ষিপ্ত বিবরণ সহ তালিকা রয়েছে:

  • এআরজি - এই নির্দেশিকা আপনাকে ভেরিয়েবলগুলি সংজ্ঞায়িত করতে দেয় যা বিল্ড-টাইমে পাস করা যায়। আপনি একটি ডিফল্ট মান সেট করতে পারেন। FROM - একটি নতুন চিত্র তৈরির জন্য বেস চিত্র। এই নির্দেশিকাটি অবশ্যই ডকফাইফিলের প্রথম অ-মন্তব্য নির্দেশিকা উচিত। এই নিয়ম থেকে একমাত্র ব্যতিক্রম হ'ল আপনি যখন FROM আর্গুমেন্টে কোনও পরিবর্তনশীল ব্যবহার করতে চান। এই ক্ষেত্রে, FROM এক বা একাধিক ARG নির্দেশাবলীর আগে করা যেতে পারে। LABEL - কোনও চিত্রে মেটাডেটা যুক্ত করতে ব্যবহৃত হয়, যেমন বিবরণ, সংস্করণ, লেখক.. ইত্যাদি। আপনি একাধিক LABEL নির্দিষ্ট করতে পারবেন এবং প্রতিটি LABEL নির্দেশনা একটি মূল-মান জুড়ি। রুন - এই নির্দেশে নির্দিষ্ট করা আদেশগুলি বিল্ড প্রক্রিয়া চলাকালীন কার্যকর করা হবে। প্রতিটি RUN নির্দেশাবলী বর্তমান চিত্রের উপরে একটি নতুন স্তর তৈরি করে। ADD - ডকর ইমেজের নির্দিষ্ট গন্তব্য থেকে নির্দিষ্ট উত্স থেকে ফাইল এবং ডিরেক্টরিগুলি অনুলিপি করতে ব্যবহৃত হয়। উত্স স্থানীয় ফাইল বা ডিরেক্টরি বা একটি URL হতে পারে। উত্সটি যদি কোনও স্থানীয় টার সংরক্ষণাগার হয় তবে এটি স্বয়ংক্রিয়ভাবে ডকার চিত্রে প্যাক করা হবে। কপি - ADD অনুরূপ তবে উত্সটি কেবল একটি স্থানীয় ফাইল বা ডিরেক্টরি হতে পারে। ENV - এই নির্দেশনা আপনাকে একটি পরিবেশের পরিবর্তনশীল নির্ধারণ করতে দেয় allows সিএমডি - আপনি যখন কোনও ধারক চালাবেন তখন কার্যকর হবে এমন একটি কমান্ড নির্দিষ্ট করতে ব্যবহৃত হয়। আপনি আপনার ডকফাইফিলে কেবলমাত্র একটি CMD নির্দেশ ব্যবহার করতে পারেন। ENTRYPOINT - CMD অনুরূপ, এই নির্দেশিকাটি বোঝায় যে একটি ধারক চালানোর সময় কোন আদেশটি কার্যকর করা হবে। ওয়ার্কডির - এই নির্দেশনাটি আরএন, CMD , ENTRYPOINT , COPY এবং ADD নির্দেশিকার জন্য বর্তমান কার্যনির্বাহী ডিরেক্টরি নির্ধারণ করে। ব্যবহারকারী - নিম্নলিখিত কোনও RUN , CMD , ENTRYPOINT , COPY এবং ADD নির্দেশাবলী চলাকালীন ব্যবহারকারীর নাম বা UID সেট করুন। ভলিউম - আপনাকে ধারকটিতে একটি হোস্ট মেশিন ডিরেক্টরিটি মাউন্ট করতে সক্ষম করে। এক্সপোজ - পোর্টটি রানটাইমের সময় শোনা যায় এমন পোর্টটি নির্দিষ্ট করতে ব্যবহৃত হয়।

ফাইল এবং ডিরেক্টরিগুলি ছবিতে যুক্ত হওয়া থেকে বাদ দেওয়ার জন্য, প্রসঙ্গ ডিরেক্টরিতে একটি .dockerignore ফাইল তৈরি করুন। .dockerignore বাক্য .dockerignore গিটের .gitignore ফাইলের .gitignore

ডকফাইফাইল নির্দেশের সম্পূর্ণ রেফারেন্স এবং বিশদ ব্যাখ্যার জন্য অফিসিয়াল ডকফেরফিল রেফারেন্স পৃষ্ঠাটি দেখুন।

একটি ডকফেরাইল তৈরি করুন

ডকার ইমেজ তৈরি করার সময় সর্বাধিক সাধারণ পরিস্থিতি হ'ল একটি রেজিস্ট্রি (সাধারণত ডকার হাব থেকে) থেকে বিদ্যমান চিত্রটি টানতে এবং বেস চিত্রটিতে আপনি যে পরিবর্তনগুলি করতে চান তা নির্দিষ্ট করে দেওয়া। ডকার ইমেজ তৈরি করার সময় সর্বাধিক ব্যবহৃত বেস ইমেজটি আলপাইন কারণ এটি ছোট এবং র‌্যামে চালিত হওয়ার জন্য অনুকূলিত।

ডকার হাবটি ক্লাউড-ভিত্তিক রেজিস্ট্রি পরিষেবা যা অন্যান্য কার্যকারিতাগুলির মধ্যে ডকার ইমেজগুলিকে পাবলিক বা বেসরকারী সংগ্রহস্থলে রাখার জন্য ব্যবহৃত হয়।

এই উদাহরণে, আমরা রেডিস সার্ভারের জন্য একটি ডকার চিত্র তৈরি করব। আমরা বেস ইমেজ হিসাবে সর্বশেষতম উবুন্টু 18.04 ব্যবহার করব।

প্রথমে একটি ডিরেক্টরি তৈরি করুন যাতে ডকফাইফাইল এবং সমস্ত প্রয়োজনীয় ফাইল থাকবে:

mkdir ~/redis_docker

ডিরেক্টরিতে নেভিগেট করুন এবং নিম্নলিখিত ডকফেরাইল তৈরি করুন:

cd ~/redis_docker nano Dockerfile Dockerfile

FROM ubuntu:18.04 RUN apt-get update && \ apt-get install -y redis-server && \ apt-get clean EXPOSE 6379 CMD

আসুন ডকফাইফিলের প্রতিটি লাইনের অর্থ ব্যাখ্যা কর:

  • লাইন 1 আমরা বেস চিত্রটি সংজ্ঞায়িত করছি line লাইন 3 শুরু হওয়া RUN নির্দেশটি অ্যাপটি সূচকটি আপডেট করবে, "রেডিস-সার্ভার" প্যাকেজটি ইনস্টল করবে এবং অ্যাপটি ক্যাশে পরিষ্কার করবে। নির্দেশাবলীতে ব্যবহৃত কমান্ডগুলি উবুন্টু সার্ভারে EXPOSE ইনস্টল করার জন্য আপনি যে আদেশগুলি ব্যবহার করেছিলেন তা সমান EXPOSE নির্দেশিকাটি পোর্টটি নির্ধারণ করে যেখানে রেডিস সার্ভারটি শোনে। কন্টেইনারটি চালিত হলে এটি কার্যকর করা হবে।

ফাইলটি সংরক্ষণ করুন এবং সম্পাদকটি বন্ধ করুন।

ইমেজ বিল্ডিং

পরবর্তী পদক্ষেপটি চিত্রটি তৈরি করা। ডকফাইফাইল যেখানে রয়েছে সেই ডিরেক্টরি থেকে নিম্নলিখিত কমান্ডটি চালান:

docker build -t linuxize/redis.

বিকল্পটি-টি চিত্রের নাম এবং allyচ্ছিকভাবে একটি ব্যবহারকারীর নাম এবং 'ইউজার নেম / চিত্র-নাম: ট্যাগ' ফর্ম্যাটে ট্যাগ নির্দিষ্ট করে।

বিল্ড প্রক্রিয়াটির আউটপুট এরকম কিছু দেখবে:

Sending build context to Docker daemon 3.584kB Step 1/4: FROM ubuntu:18.04 ---> 7698f282e524 Step 2/4: RUN apt-get update && apt-get install -y gosu redis-server && apt-get clean ---> Running in e80d4dd69263… Removing intermediate container e80d4dd69263 ---> e19fb7653fca Step 3/4: EXPOSE 6379 ---> Running in 8b2a45f457cc Removing intermediate container 8b2a45f457cc ---> 13b92565c201 Step 4/4: CMD ---> Running in a67ec50c7048 Removing intermediate container a67ec50c7048 ---> d8acc14d9b6b Successfully built d8acc14d9b6b Successfully tagged linuxize/redis:latest

বিল্ড প্রক্রিয়াটি শেষ হয়ে গেলে নতুন চিত্রটি চিত্রের তালিকায় তালিকাভুক্ত হবে:

docker image ls

REPOSITORY TAG IMAGE ID CREATED SIZE linuxize/redis latest d8acc14d9b6b 4 minutes ago 100MB ubuntu 18.04 7698f282e524 5 days ago 69.9MB

একটি ধারক চালানো

এখন যে চিত্রটি তৈরি হয়েছে আপনি এটি থেকে চালিয়ে একটি ধারক চালান:

docker run -d -p 6379:6379 --name redis linuxize/redis

-d বিকল্পগুলি ডকারকে কনটেইনারটি বিচ্ছিন্ন মোডে চালিত করতে বলে, -p 6379:6379 বিকল্পটি হোস্ট মেশিনে 6379 পোর্টটি প্রকাশ করবে এবং --name redis বিকল্পটি --name redis নাম নির্দিষ্ট করে। সর্বশেষ যুক্তি linuxize/redis নাম, যা linuxize/redis চালানোর জন্য ব্যবহৃত হয়।

যখন ধারকটি শুরু হয়, সমস্ত চলমান পাত্রে তালিকাবদ্ধ করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

docker container ls

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6b7d424cd915 linuxize/redis:v0.0.1 "redis-server '--pro…" 5 minutes ago Up 5 minutes 0.0.0.0:6379->6379/tcp redis

redis-cli সাথে সংযোগ স্থাপনের জন্য redis-cli ব্যবহার করা উচিত হিসাবে সবকিছু কাজ করে তা যাচাই করতে:

redis-cli ping

Redis সার্ভারটি পং-এর সাথে সাড়া দেওয়া উচিত।

উপসংহার

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

ডকশ্রমিক