পোর্ট এক্সপোজ করতে ডকারফিল ব্যবহার করা

Using Dockerfile Expose Ports



বিদ্যমান ডকার চিত্রগুলি ব্যবহার করে একটি কাস্টম ডকার চিত্র তৈরি করা সত্যিই সহজ ডকারফিল । সাধারণত মানুষ ন্যূনতম বেস ইমেজ ব্যবহার করে যেমন আলপাইন অথবা উবুন্টু/ডেবিয়ান যে উদ্দেশ্যে. ধরা যাক, আপনি নোডজেএস -এ লেখা আপনার প্রিয় ওয়েব অ্যাপের একটি কাস্টম ডকার ইমেজ তৈরি করতে চান। অ্যাপটি পোর্টে চলবে 8080 । ডিফল্টরূপে, আপনি পোর্টে ওয়েব অ্যাপ অ্যাক্সেস করতে পারবেন না 8080 আপনার হোস্ট মেশিন থেকে। আপনাকে ডকারকে বলতে হবে যে আপনি এক্সপোজ করতে চান বা পোর্ট খুলতে চান 8080 আপনার হোস্ট মেশিন থেকে এটি অ্যাক্সেস করতে সক্ষম হতে।

এই নিবন্ধে, আমি আপনাকে দেখাব কিভাবে ব্যবহার করে পোর্টগুলি প্রকাশ করা যায় ডকারফিল একটি বাস্তব বিশ্বের উদাহরণ সহ। চল শুরু করি.







প্রথমত, আমাদের একটি প্রকল্প ডিরেক্টরি তৈরি করতে হবে। এই ডিরেক্টরিতে, আপনার সমস্ত প্রকল্প ফাইল এবং একটি রাখা উচিত ডকারফিল



একটি প্রকল্প ডিরেক্টরি তৈরি করতে নিম্নলিখিত কমান্ডটি চালান myapp/ আপনার ব্যবহারকারীদের হোম ডিরেক্টরিতে এবং এটিতে নেভিগেট করুন:



$mkdir~/myapp&& সিডি~/myapp

ওয়েব অ্যাপ প্রস্তুত করা হচ্ছে:

এখন একটি ডিরেক্টরি তৈরি করুন src/ ভিতরে my/myapp/ নিম্নলিখিত কমান্ড সহ ডিরেক্টরি:

$mkdirsrc

মধ্যে src/ ডিরেক্টরি, আমার NodeJS অ্যাপ্লিকেশনের সমস্ত সোর্স কোড রাখা হবে।

আমি শুধু একটি সহজ তৈরি করব app.js ফাইল src/ ডিরেক্টরি এবং পোর্টে একটি সাধারণ ওয়েব সার্ভার চালান 8080 শুধু প্রদর্শনের জন্য।

দ্য src/app.js ফাইলে নিম্নলিখিত কোডগুলির লাইন রয়েছে:

ডকারফিল লেখা এবং বন্দরগুলি প্রকাশ করা:

এখন একটি তৈরি করুন ডকারফিল মধ্যে /myapp নিম্নলিখিত কমান্ড সহ ডিরেক্টরি:

$স্পর্শডকারফিল

এখন নিচের লাইনগুলোতে টাইপ করুন ডকারফিল এবং এটি সংরক্ষণ করুন। এই লাইনগুলোর মানে কি তা নিয়ে পরে আলোচনা করব।

এখানে, আলপাইন থেকে: 3.8 মানে, ব্যবহার করুন আলপাইন: 3.8 ডকার ইমেজ নতুন ইমেজের ভিত্তি হিসেবে যা আমরা তৈরি করব ডকারফিল

রান আপ APK আপডেট মানে, চালান apk আপডেট বেস ডকার ইমেজে কমান্ড আলপাইন: 3.8

RUN apk –no-cache nodejs যোগ করুন মানে, চালান apk যোগ করুন এ NodeJS প্রোগ্রামিং ভাষা ইনস্টল করার কমান্ড আলপাইন: 3.8 ডকার বেস ইমেজ।

কপি ।/src /অ্যাপ মানে, থেকে সব ফাইল কপি করুন my/myapp/src জন্য ডিরেক্টরি /অ্যাপ নতুন ডকার চিত্রের ডিরেক্টরি যা আমরা ব্যবহার করে তৈরি করব ডকারফিল

CMD [/usr/bin/node, /app/app.js] মানে, চালান /app/app.js ব্যবহার করে নতুন ধারক থেকে ফাইল নোড বাইনারি অবস্থিত /usr/bin/node

অবশেষে, করতে এক্সপোজ 8080/টিসিপি মানে, টিসিপি পোর্ট উন্মুক্ত বা খুলুন 8080 হোস্ট কম্পিউটারে।

ডকারফিল ব্যবহার করে কাস্টম ডকার ইমেজ তৈরি করা:

এখন একটি কাস্টম ডকার ইমেজ করা যাক আলপাইন নোড: v1 ব্যবহার করে ডকারফিল যেটা আমরা তৈরি করেছি মাত্র।

প্রথমে নিশ্চিত করুন যে আপনি এতে আছেন my/myapp/ ডিরেক্টরি এবং তারপর আপনার কাস্টম ডকার ইমেজ তৈরি করতে নিম্নলিখিত কমান্ডটি চালান আলপাইন নোড: v1 :

$ডকার বিল্ড-টিআলপাইন নোড: v1।

আপনি দেখতে পারেন, কাস্টম ডকার ইমেজ আলপাইন নোড: v1 তৈরি করা হচ্ছে। প্রয়োজনীয় বেস ডকার ইমেজ এবং প্যাকেজগুলি ইন্টারনেট থেকে টানা হচ্ছে।

আপনি দেখতে পারেন, কাস্টম ডকার ইমেজ আলপাইন নোড: v1 সফলভাবে তৈরি করা হয়েছে।

কাস্টম ডকার ইমেজ পরীক্ষা করা হচ্ছে:

এখন আমরা কাস্টম ডকার ইমেজ পরীক্ষা করতে পারি আলপাইন নোড: v1 খুব সহজভাবে. আমাদের যা করতে হবে তা হল একটি কন্টেইনার তৈরি করা আলপাইন নোড: v1 ছবি

একটি ডকার কন্টেইনার তৈরি করতে নিম্নলিখিত কমান্ডটি চালান www থেকে আলপাইন নোড: v1 ডকার ইমেজ:

$ডকার রান-ডি -এটা -নামwww আলপাইন-নোড: v1

পাত্রে www সৃষ্ট.

এখন এর আইপি ঠিকানা খুঁজে বের করা যাক www নিম্নলিখিত কমান্ড সহ ডকার কন্টেইনার:

$ডকার পরিদর্শন www| খপ্পরঠিকানা

আপনি দেখতে পাচ্ছেন, আমার ক্ষেত্রে, আইপি ঠিকানা হল 172.17.0.3 । সুতরাং আমি যে নোডজেএস অ্যাপ্লিকেশনটি লিখেছি তা পোর্টে ওয়েব ব্রাউজার থেকে অ্যাক্সেসযোগ্য হওয়া উচিত 8080 এই IP ঠিকানার।

ভয়েলা! আমি বন্দরে প্রবেশ করতে পারি 8080 আমার www ডকার কন্টেইনার।

মূলত আপনি কীভাবে আপনার কাস্টম ডকার চিত্রগুলিতে নির্দিষ্ট পোর্টগুলি প্রকাশ করেন যা আপনি ব্যবহার করবেন ডকারফিল

ডকারফিল ব্যবহার করে টিসিপি এবং ইউডিপি পোর্টগুলি প্রকাশ করা:

এই নিবন্ধের আগের অংশে, আমি আপনাকে দেখিয়েছি কিভাবে একটি টিসিপি পোর্ট এক্সপোজ করতে হয় ডকারফিল

আপনি সহজেই একটি টিসিপি পোর্ট প্রকাশ করতে পারেন (ধরা যাক টিসিপি পোর্ট 53 ) আপনার মধ্যে ডকারফিল নিম্নলিখিত লাইন দিয়ে:

প্রকাশ করা53/tcp

আপনি একটি ইউডিপি পোর্টও প্রকাশ করতে পারেন (ধরা যাক ইউডিপি পোর্ট 53 ) আপনার নিম্নলিখিত লাইন সহ ডকারফিল :

প্রকাশ করা53/ইউডিপি

আপনি TCP এবং UDP পোর্টকে একই সময়ে প্রকাশ করতে পারেন আপনার নিম্নলিখিত লাইনগুলির সাথে ডকারফিল :

প্রকাশ করা53/tcp
প্রকাশ করা53/ইউডিপি

আপনি কোন প্রটোকল (TCP বা UDP) ব্যবহার করবেন তা নির্দিষ্ট না করলে, TCP ডিফল্টরূপে ব্যবহৃত হয়। উদাহরণস্বরূপ, যদি আপনি আপনার মধ্যে নিম্নলিখিত লাইনটি লিখেন ডকারফিল :

প্রকাশ করা53

তারপর ডকার ধরে নেবে যে আপনি টিসিপি পোর্ট 53 ব্যবহার করতে চান।

ডকারফিল ব্যবহার করে একাধিক পোর্ট উন্মুক্ত করা:

ধরা যাক আপনি একটি কাস্টম MEAN স্ট্যাক ডকার ইমেজ তৈরি করতে চান। এই ক্ষেত্রে, আপনি কিছু পোর্টে একটি HTTP সার্ভার চালাচ্ছেন (ধরা যাক TCP পোর্ট 80 বা 8080), একটি FTP সার্ভার যা TCP পোর্ট 21, একটি SQL ডাটাবেস সার্ভার (চলুন MySQL বলি) যা TCP পোর্ট 3306 এ চলে, অথবা NoSQL ডাটাবেস সার্ভার (ধরা যাক MongoDB) যা TCP পোর্ট 27017 বা 27018, একটি SSH সার্ভার যা TCP পোর্ট 22 এ চলে। এটি অনেক পোর্ট!

সুসংবাদ হল; আপনি ব্যবহার করে তৈরি আপনার কাস্টম ডকার ইমেজে যতটা পোর্ট প্রয়োজন ততটা প্রকাশ করতে পারেন ডকারফিল

উপরের উদাহরণে পোর্টগুলি আপনার নিম্নলিখিত লাইনগুলির সাথে উন্মুক্ত করা যেতে পারে ডকারফিল :

প্রকাশ করা80/tcp
প্রকাশ করা8080/tcp
প্রকাশ করাএকুশ/tcp
প্রকাশ করা22/tcp
প্রকাশ করা3306/tcp
প্রকাশ করা27017/tcp
প্রকাশ করা27018/tcp

যদি আপনি চান, আপনি প্রোটোকল স্পেসিফিকেশন ছেড়ে যেতে পারেন কারণ ডকার ডিফল্টভাবে টিসিপি ব্যবহার করে এবং আপনার নিম্নলিখিত লাইনগুলির সাথে একই কাজ করে ডকারফিল :

প্রকাশ করা80
প্রকাশ করা8080
প্রকাশ করাএকুশ
প্রকাশ করা22
প্রকাশ করা3306
প্রকাশ করা27017
প্রকাশ করা27018

আপনার প্রয়োজন হলে, আপনি আপনার মধ্যে TCP এবং UDP পোর্ট মিশ্রিত করতে পারেন ডকারফিল । উদাহরণস্বরূপ, যদি আপনি DNS সার্ভার চালান (যা UDP পোর্ট 53 এ চলে), উপরের উদাহরণ সহ, আপনি নিম্নলিখিত লাইনগুলি আপনার ডকারফিল

প্রকাশ করা80
প্রকাশ করা8080
প্রকাশ করাএকুশ
প্রকাশ করা22
প্রকাশ করা53/ইউডিপি
প্রকাশ করা3306
প্রকাশ করা27017
প্রকাশ করা27018

সুতরাং আপনি কীভাবে পোর্টগুলি ব্যবহার করে তা প্রকাশ করেন ডকারফিল । সম্পর্কে আরো জানতে ডকারফিল এবং পোর্ট ব্যবহার করে উন্মুক্ত করা ডকারফিল , পর এটা ডকারফিল এ রেফারেন্স গাইড https://docs.docker.com/engine/reference/builder/#expose

এই নিবন্ধটি পড়ার জন্য ধন্যবাদ।