ডকফাইফিলের সাহায্যে কীভাবে কাস্টম ডকার চিত্রগুলি স্বয়ংক্রিয়ভাবে তৈরি এবং কনফিগার করা যায় - পার্ট 3
এই টিউটোরিয়ালটি অ্যাবচি পরিষেবা ইনস্টল থাকা উবুন্টুর উপর ভিত্তি করে কাস্টম ডকার চিত্র কীভাবে তৈরি করবেন সে সম্পর্কে মনোনিবেশ করবে। পুরো প্রক্রিয়াটি ডকফাইফিল ব্যবহার করে স্বয়ংক্রিয়ভাবে পরিচালিত হবে।
ডকার চিত্রগুলি স্বয়ংক্রিয়ভাবে পাঠ্য ফাইল থেকে তৈরি করা যেতে পারে, যার নাম ডকফিলফিলস। একটি ডকার ফাইলটিতে ডকার চিত্র তৈরি এবং কনফিগার করতে ব্যবহৃত পদক্ষেপে নির্দেশিত নির্দেশাবলী বা কমান্ড রয়েছে।
- ডকার ইনস্টল করুন এবং ডকার কনটেইনার ম্যানিপুলেশন শিখুন - পার্ট 1
- ডকার কনটেইনারগুলির অধীনে অ্যাপ্লিকেশন স্থাপন এবং চালনা করুন - পার্ট 2
মূলত, আপনার প্রয়োজনীয়তার উপর ভিত্তি করে একটি নির্দিষ্ট ধারক তৈরি এবং কনফিগার করতে ডকার ফাইলটিতে বিভিন্ন নির্দেশাবলী রয়েছে contains নিম্নলিখিত নির্দেশাবলী সর্বাধিক ব্যবহৃত হয়, যার মধ্যে কয়েকটি বাধ্যতামূলক:
-
FROM
= ডকার ফাইলের প্রথম নির্দেশিকা হিসাবে বাধ্যতামূলক। আপনি যে নতুন চিত্রটি তৈরি করছেন সেই বেস চিত্রটি টানতে ডকারকে নির্দেশ দেয়। আপনি যে চিত্রটি থেকে তৈরি করছেন তা নির্দিষ্ট করতে একটি ট্যাগ ব্যবহার করুন:
Ex: FROM ubuntu:20.04
-
রক্ষণাবেক্ষণ
= বিল্ড চিত্রের লেখক -
RUN
= এই নির্দেশটি একাধিক লাইনে ব্যবহার করা যেতে পারে এবং ডকার ইমেজ তৈরি হওয়ার পরে কোনও কমান্ড চালায় -
CMD
= ডকার চিত্র শুরু হওয়ার পরে কোনও কমান্ড চালান। ডকফাইফিলে কেবল একটি সিএমডি নির্দেশ ব্যবহার করুন -
ENTRYPOINT
= সিএমডি হিসাবে একই তবে চিত্রটির মূল কমান্ড হিসাবে ব্যবহৃত -
এক্সপোজ
= চলমান অবস্থায় পোর্টটিকে নেটওয়ার্ক পোর্টগুলিতে শোনার নির্দেশ দেয়। ধারক পোর্টগুলি ডিফল্টরূপে হোস্টের কাছ থেকে পৌঁছানো যায় না -
ENV
= ধারক পরিবেশের ভেরিয়েবল সেট করুন -
যুক্ত করুন
= সংস্থানগুলি অনুলিপি করুন (ফাইলগুলি, ডিরেক্টরিগুলি বা URL থেকে ফাইলগুলি)
পদক্ষেপ 1: ডকফেরফিল সংগ্রহস্থল তৈরি বা রচনা
১. প্রথমে আসুন, ভবিষ্যতে অন্য চিত্রগুলি তৈরি করার জন্য ফাইলগুলি পুনরায় ব্যবহার করার জন্য এক ধরণের ডকফেরফিল সংগ্রহস্থল তৈরি করা যাক। /var
পার্টিশনের কোথাও একটি ফাঁকা ডিরেক্টরি তৈরি করুন যেখানে আমরা নতুন ডকার চিত্রটি তৈরি করতে ব্যবহৃত নির্দেশাবলীর সাহায্যে ফাইলটি তৈরি করব।
# mkdir -p /var/docker/ubuntu/apache # touch /var/docker/ubuntu/apache/Dockerfile
২. এরপরে, নিম্নলিখিত নির্দেশাবলীর সাহায্যে ফাইলটি সম্পাদনা শুরু করুন:
# vi /var/docker/ubuntu/apache/Dockerfile
ডকফেরাইল অংশ:
FROM ubuntu MAINTAINER your_name <[email > RUN apt-get -y install apache2 RUN echo “Hello Apache server on Ubuntu Docker” > /var/www/html/index.html EXPOSE 80 CMD /usr/sbin/apache2ctl -D FOREGROUND
এখন, ফাইলের নির্দেশাবলীর মধ্য দিয়ে চলুন:
প্রথম লাইনটি আমাদের জানায় যে আমরা একটি উবুন্টু চিত্রটি তৈরি করছি। যদি কোনও ট্যাগ জমা না দেওয়া হয় তবে 14:10 বলুন উদাহরণস্বরূপ, ডকার হাবের সর্বশেষ চিত্র ব্যবহৃত হয়েছে is
দ্বিতীয় লাইনে আমরা চিত্র নির্মাতার নাম এবং ইমেল যুক্ত করেছি। ছবিটি তৈরির সময় পরবর্তী দুটি আরএনআর লাইন কার্যকর করা হবে এবং অ্যাপাচি ডেমন ইনস্টল করবে এবং ডিফল্ট অ্যাপাচি ওয়েব পৃষ্ঠায় কিছু পাঠ্য প্রতিধ্বনি করবে।
এক্সপোজ লাইনটি পোর্ট 80 এ ডকার পাত্রে শোনার নির্দেশ দিবে, তবে পোর্টটি বাইরের জন্য উপলভ্য হবে না। শেষ লাইনটি ধারকটি শুরু হওয়ার পরে পটভূমিতে অ্যাপাচি পরিষেবা চালানোর জন্য ধারককে নির্দেশ দেয়।
৩. আমাদের শেষ কাজটি করা দরকার তা হ'ল নীচের কমান্ডটি জারি করে চিত্রটি তৈরি করা শুরু করুন যা স্থানীয়ভাবে উবুন্টু-অ্যাপাচি
নামে একটি নতুন ডকার চিত্র তৈরি করবে যা পূর্বে তৈরি ডকর্মিলের উপর ভিত্তি করে দেখানো হয়েছে এই উদাহরণ:
# docker build -t ubuntu-apache /var/docker/ubuntu/apache/
৪) ডকার দ্বারা ছবিটি তৈরি করার পরে, আপনি সমস্ত উপলব্ধ চিত্রগুলি তালিকাভুক্ত করতে পারেন এবং নীচের আদেশটি জারি করে আপনার চিত্রটি সনাক্ত করতে পারেন:
# docker images
পদক্ষেপ 2: কনটেইনারটি চালান এবং ল্যান থেকে অ্যাপাচি অ্যাক্সেস করুন
৫. আপনার ল্যানের হোস্ট বা অন্যান্য রিমোট মেশিন থেকে ধারাবাহিকভাবে (পটভূমিতে) ধারক চালানোর জন্য এবং ধারক উন্মুক্ত পরিষেবাগুলি (পোর্ট) অ্যাক্সেসের জন্য, আপনার হোস্ট টার্মিনাল প্রম্পটে নীচের কমান্ডটি চালান:
# docker run -d -p 81:80 ubuntu-apache
এখানে -d
বিকল্পটি উবুন্টু-অ্যাপাচি
পটভূমিতে (ডিমন হিসাবে) এবং -p
বিকল্পটি কনটেইনার পোর্ট 80 কে ম্যাপ করে maps আপনার লোকালহোস্ট পোর্টে 81. আপাচি পরিষেবাতে ল্যানের বাইরে অ্যাক্সেস কেবল 81 বন্দর দিয়ে পৌঁছানো যেতে পারে।
হোস্ট পোর্ট কী শুনছে তা সম্পর্কে নেটস্ট্যাট কমান্ড আপনাকে ধারণা দেবে।
ধারকটি শুরু হওয়ার পরে, চলমান ধারকটির স্থিতি দেখতে আপনি ডকার পিএস
কমান্ডও চালাতে পারেন।
The. ওয়েবপেজটি আপনার মেশিনের আইপি অ্যাড্রেস, লোকালহোস্ট, বা পোর্ট on১ এ ডকার নেট ইন্টারফেসের বিরুদ্ধে কার্ল ইউটিলিটি ব্যবহার করে কমান্ড লাইন থেকে আপনার হোস্টে প্রদর্শিত হতে পারে network নেটওয়ার্ক ইন্টারফেসের আইপি ঠিকানাগুলি দেখানোর জন্য আইপি কমান্ড লাইনটি ব্যবহার করুন।
# ip addr [List nework interfaces] # curl ip-address:81 [System Docker IP Address] # curl localhost:81 [Localhost]
Your. আপনার নেটওয়ার্ক থেকে কন্টেইনার ওয়েবপেজটি দেখার জন্য, কোনও দূরবর্তী স্থানে একটি ব্রাউজার খুলুন এবং ধারকটি চালাচ্ছে এমন মেশিনের আইপি ঠিকানা এইচটিটিপি প্রোটোকল ব্যবহার করুন, তারপরে নীচের চিত্রটিতে চিত্রিত পোর্ট 81১ অনুসরণ করুন।
http://ip-address:81
৮. ধারকটির ভিতরে কী প্রক্রিয়াগুলি চলছে সেগুলি সম্পর্কে জানতে নিম্নলিখিত কমান্ডটি জারি করুন:
# docker ps # docker top <name or ID of the container>
9. কনটেইনার ইস্যু বন্ধ করার জন্য ডকার স্টপ
কমান্ডের পরে কন্টেইনার আইডি বা নাম।
# docker stop <name or ID of the container> # docker ps
১০. আপনি যদি ধারকটির জন্য বর্ণনামূলক নাম নির্ধারণ করতে চান তবে নীচের উদাহরণে বর্ণিত --name
বিকল্পটি ব্যবহার করুন:
# docker run --name my-www -d -p 81:80 ubuntu-apache # docker ps
এখন আপনি কেবল নিযুক্ত নাম ব্যবহার করে ম্যানিপুলেশন (শুরু, স্টপ, শীর্ষ, পরিসংখ্যান, ইত্যাদি) এর জন্য ধারকটি উল্লেখ করতে পারেন।
# docker stats my-www
পদক্ষেপ 3: ডকার কনটেইনারটির জন্য একটি সিস্টেম-প্রশস্ত কনফিগারেশন ফাইল তৈরি করুন
১১. সেন্টোস/আরএইচএল-তে আপনি একটি সিস্টেমযুক্ত কনফিগারেশন ফাইল তৈরি করতে পারেন এবং সাধারণভাবে অন্য যে কোনও স্থানীয় পরিষেবার জন্য যেমন করেন তেমন ধারকটি পরিচালনা করতে পারেন।
উদাহরণস্বরূপ, নামের একটি নতুন সিস্টেমযুক্ত ফাইল তৈরি করুন, আসুন নীচের কমান্ডটি ব্যবহার করে অ্যাপাচি-ডকার serv সার্ভিস
বলুন:
# vi /etc/systemd/system/apache-docker.service
apache-docker.service ফাইলের অংশ:
[Unit] Description=apache container Requires=docker.service After=docker.service [Service] Restart=always ExecStart=/usr/bin/docker start -a my-www ExecStop=/usr/bin/docker stop -t 2 my-www [Install] WantedBy=local.target
১২. আপনি ফাইলটি সম্পাদনা শেষ করার পরে, এটি বন্ধ করুন, পরিবর্তনগুলি প্রতিফলিত করতে সিস্টেমড ডিমন পুনরায় লোড করুন এবং নিম্নলিখিত কমান্ডগুলি জারি করে ধারকটি শুরু করুন:
# systemctl daemon-reload # systemctl start apache-docker.service # systemctl status apache-docker.service
এটি একটি সাধারণ ডকফেরফিলের সাথে আপনি কী করতে পারেন তার একটি সহজ উদাহরণ কিন্তু আপনি কিছু চমত্কার পরিশীলিত অ্যাপ্লিকেশন প্রাক-বিল্ড করতে পারেন যা আপনি ন্যূনতম সংস্থান এবং প্রচেষ্টা দিয়ে সেকেন্ডের কিছুক্ষণের মধ্যেই ফায়ার-আপ করতে পারেন।
আরও পড়া: