ডকারে কীভাবে পোর্ট ফরোয়ার্ড করবেন

Dakare Kibhabe Porta Pharoyarda Karabena



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

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

এই পোস্টটি প্রদর্শন করবে:







'-p' বা '-publish' ট্যাগ ব্যবহার করে ডকারে কীভাবে পোর্ট ফরওয়ার্ড করবেন

ডকারে একটি পোর্ট ফরোয়ার্ড করতে, ব্যবহারকারীকে ডকার হোস্টে কন্টেইনার পোর্ট প্রকাশ করতে হবে। এই উদ্দেশ্যে, ' ব্যবহার করে ডকার হোস্টে ধারকটি চালান -পি 'বা' - প্রকাশ করা 'এ ট্যাগ করুন' ডকার রান 'আদেশ।



সঠিক প্রদর্শনের জন্য, নীচের নির্দেশাবলী অনুসরণ করুন।



ধাপ 1: ডকারফাইল তৈরি করুন

প্রথমে একটি ফাইল তৈরি করুন এবং এর নাম সেট করুন “ ডকারফাইল ” এই ফাইলটিতে ডকার কন্টেইনারের টেমপ্লেট তৈরি করার জন্য পাঠ্য নির্দেশাবলী রয়েছে। উদাহরণস্বরূপ, আসুন ডকারফাইলে নীচের স্নিপেটটি ব্যবহার করে সাধারণ গোলং প্রোগ্রামটি ডকারাইজ করি:





গোলং থেকে: 1.8

ওয়ার্কডির / যাওয়া / src / অ্যাপ

কপি main2.go.

চালান নির্মাণ যান -ও ওয়েব সার্ভার .

প্রকাশ করা 8080

সিএমডি [ './ওয়েব সার্ভার' ]

প্রদত্ত স্নিপেটে:

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

ধাপ 2: একটি গোলং প্রোগ্রাম তৈরি করুন

এরপর, “নামক আরেকটি ফাইল তৈরি করুন main2.go 'এবং নীচে প্রদত্ত গোলং প্রোগ্রামটি পেস্ট করুন যা পোর্টে একটি সাধারণ স্ট্রিং প্রিন্ট করে' 8080 ”:



প্যাকেজ প্রধান

আমদানি (

'fmt'

'লগ'

'নেট/http'

)

ফাঙ্ক হ্যান্ডলার ( ভিতরে http.ResponseWriter, r * http.অনুরোধ ) {

html := `

DOCTYPE html >

< html >

< মাথা >

< শিরোনাম > হ্যালো গোলং ! শিরোনাম >

< শৈলী >

শরীর {

পেছনের রং: #D2B48C;

}

.পাত্র {

টেক্সট-সারিবদ্ধ: কেন্দ্র;

প্যাডিং: 50px;

}

শৈলী >

মাথা >

< শরীর >

< div ক্লাস = 'পাত্র' >

< h1 > হ্যালো ! LinuxHint টিউটোরিয়ালে স্বাগতম h1 >

div >

শরীর >

html >`

w. Header ( ) .সেট ( 'বিষয়বস্তুর প্রকার' , 'টেক্সট/এইচটিএমএল' )

fmt.Fprint ( ভিতরে , html )

}

ফাংশন প্রধান ( ) {

http.HandleFunc ( '/' , হ্যান্ডলার )

লগ। মারাত্মক ( http.ListenAndServe ( '0.0.0.0:8080' , শূন্য ) )

}

ধাপ 3: কন্টেইনারের স্ন্যাপশট তৈরি করুন

এখন, উপরের নির্দিষ্ট ডকারফাইল থেকে ধারকটির জন্য একটি স্ন্যাপশট তৈরি করুন। এই উদ্দেশ্যে, প্রথমে, ডিরেক্টরিতে নেভিগেট করুন যেখানে ডকারফাইলটি ' cd <পাথ-টু-ওয়ার্কিং-ডির> 'আদেশ:

এরপরে, প্রদত্ত কমান্ডটি ব্যবহার করে নতুন ধারক চিত্র তৈরি করুন:

ডকার বিল্ড -t golang-img.

প্রদত্ত ফলাফল দেখায় যে চিত্রটি প্রদত্ত বিল্ড প্রসঙ্গ অনুসারে তৈরি করা হয়েছে।

ধাপ 4: হোস্ট পোর্টকে কন্টেইনার পোর্টে ফরওয়ার্ড করুন

এখন, কন্টেইনারটি এক্সিকিউট করুন এবং হোস্ট পোর্টটিকে কন্টেইনার পোর্টে ফরওয়ার্ড করুন যাতে স্থানীয় মেশিনে কনটেইনারের বাইরে ডকারাইজ অ্যাপ অ্যাক্সেস করা যায়। এই উদ্দেশ্যে, চালান 'ডকার রান -নাম -p : 'আদেশ:

ডকার রান -- নাম চলুন -পি 8080 : 8080 golang-img

এখানে ' -পি ডকার হোস্টে কন্টেইনার এক্সিকিউটিং পোর্ট প্রকাশ করতে পতাকা ব্যবহার করা হয়:

ধাপ 5: যাচাইকরণ

যাচাইকরণের জন্য, ' ব্যবহার করে চলমান পাত্রগুলি দেখুন ডকার পিএস ”:

ডকার পুনশ্চ

নীচের ফলাফলে, কন্টেইনারাইজড অ্যাপ্লিকেশন উপলব্ধ নেটওয়ার্ক ইন্টারফেসে শোনা যাচ্ছে ' 0.0.0.0 'প্রকাশিত পোর্টে' 8080 ” এটি বোঝায় যে পোর্টটি হোস্ট মেশিনে চলমান অ্যাপ্লিকেশনে ফরোয়ার্ড করা হয়েছে:

এখন, ব্রাউজার চালু করুন এবং নেভিগেট করুন “ http://localhost:8080/ ” এবং পোর্ট ফরওয়ার্ডিং কৌশল প্রয়োগ করা হয়েছে কি না এবং হোস্ট সিস্টেমে কন্টেইনারের বাইরে কনটেইনারাইজড অ্যাপ্লিকেশন অ্যাক্সেসযোগ্য কিনা তা যাচাই করুন:

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

ডকার কম্পোজ ব্যবহার করে ডকারে কীভাবে পোর্ট ফরোয়ার্ড করবেন

কন্টেইনারের বাইরে থেকে কন্টেইনারাইজড অ্যাপ্লিকেশন অ্যাক্সেস করতে হোস্টের কাছে কন্টেইনার পোর্ট ফরওয়ার্ড করতে, ব্যবহারকারী ব্যবহার করতে পারেন “ বন্দর compose yaml ফাইলে ” কী। ডকার কম্পোজ একটি ডকার পরিষেবা যা আমাদের বিভিন্ন পাত্রে বিভিন্ন পরিষেবা এবং অ্যাপ্লিকেশন চালাতে সক্ষম করে। ব্যবহার করে ' docker-compose.yml ” ফাইল, ব্যবহারকারী হোস্ট মেশিনে কন্টেইনার পোর্ট ফরোয়ার্ড করতে পারে এবং বাইরের বিশ্বের সাথে একটি অ্যাপ্লিকেশন সংযোগ থাকতে পারে।

চিত্রের জন্য নীচের পদ্ধতিটি দেখুন।

ধাপ 1: কম্পোজ ফাইল তৈরি করুন

প্রথমে, 'নামের একটি ফাইল তৈরি করুন docker-compose.yml ” ফাইল এবং ফাইলে নিম্নলিখিত বিষয়বস্তু যোগ করুন:

সংস্করণ: '3'

সেবা:

ওয়েব:

নির্মাণ:.

বন্দর:

- 8080 : 8080

উপরের স্নিপেটে, ' বন্দর হোস্টকে কন্টেইনার পোর্টে সংযুক্ত করতে কী ব্যবহার করা হয়। এখানে, প্রথম মান হল হোস্ট পোর্ট, এবং দ্বিতীয় মান হল কন্টেইনার পোর্ট।

ধাপ 2: অ্যাপ চালু করুন

কম্পোজ ফাইলে নির্দেশাবলী নির্দিষ্ট করার পরে, ' ব্যবহার করে একটি পাত্রে অ্যাপ্লিকেশনটি চালু করুন docker- রচনা করা 'আদেশ:

docker- রচনা করা

ধাপ 3: যাচাইকরণ

যাচাইকরণের জন্য, “ ডকার-কম্পোজ পিএস 'আদেশ:

docker- রচনা পুনশ্চ -ক

হোস্ট মেশিনে ধারকটি অ্যাক্সেসযোগ্য কিনা তা পরীক্ষা করতে, 'এ নেভিগেট করুন http://localhost:8080/ ইউআরএল। এখানে, আপনি দেখতে পাচ্ছেন আমরা কার্যকরভাবে হোস্টে কন্টেইনার পোর্ট ফরোয়ার্ড করেছি:

কিভাবে নির্দিষ্ট নেটওয়ার্কে পোর্ট ফরওয়ার্ড করবেন

একটি নির্দিষ্ট নেটওয়ার্কে একটি কন্টেইনার পোর্ট ফরোয়ার্ড করার জন্য, ব্যবহারকারীকে যে নেটওয়ার্কে তারা কন্টেইনার অ্যাক্সেস করতে চান তা নির্দিষ্ট করতে হবে “ -অন্তর্জাল 'বিকল্প। প্রদর্শনের জন্য প্রদত্ত পদক্ষেপগুলি দেখুন।

ধাপ 1: একটি নেটওয়ার্ক তৈরি করুন

ব্যবহার করে একটি নতুন নেটওয়ার্ক তৈরি করুন ' ডকার নেটওয়ার্ক তৈরি করুন 'আদেশ। ডিফল্টরূপে, এই নেটওয়ার্ক একটি সেতু ড্রাইভার ব্যবহার করবে:

ডকার নেটওয়ার্ক mygo-নেটওয়ার্ক তৈরি করে

ডকার নেটওয়ার্কগুলি দেখতে, ব্যবহার করুন ' ডকার নেটওয়ার্ক ls 'আদেশ:

ডকার নেটওয়ার্ক ls

এখানে, আমরা সফলভাবে তৈরি করেছি ' mygo-নেটওয়ার্ক 'যা ব্যবহার করছে' সেতু ড্রাইভার:

ধাপ 2: ম্যাপ নেটওয়ার্ক

পোর্ট ফরওয়ার্ডিং কৌশল ব্যবহার করে নির্দিষ্ট নেটওয়ার্কে ধারকটি চালানো এবং অ্যাক্সেস করতে, নীচের কমান্ডটি ব্যবহার করুন:

ডকার রান -পি 8080 : 8080 --অন্তর্জাল mygo-network golang-img

প্রদত্ত কমান্ডে, ' -পি ” বিকল্পটি নির্দিষ্ট নেটওয়ার্কের একটি নির্দিষ্ট পোর্টে ধারকটিকে প্রকাশ করে। এখানে ' -অন্তর্জাল ' বিকল্পটি ডকার নেটওয়ার্ক সংজ্ঞায়িত করতে ব্যবহৃত হয়:

যাচাইকরণের জন্য, আবার নেভিগেট করুন “ http://localhost:8080 ” পোর্ট করুন এবং নির্দিষ্ট নেটওয়ার্কে ধারকটি অ্যাক্সেসযোগ্য কিনা তা পরীক্ষা করুন:

উপরের আউটপুটটি নির্দেশ করে যে আমরা কার্যকরভাবে একটি নির্দিষ্ট নেটওয়ার্কে কন্টেইনার পোর্ট ফরোয়ার্ড করেছি।

বিঃদ্রঃ: 'হোস্ট' নেটওয়ার্ক ব্যবহার করার সময়, ব্যবহারকারীকে 'ব্যবহার করে কন্টেইনার থেকে হোস্টে পোর্ট প্রকাশ করতে হবে না -পি 'বা' - প্রকাশ করা 'বিকল্প।

ডকার কম্পোজ ব্যবহার করে নির্দিষ্ট নেটওয়ার্কে পোর্ট ফরওয়ার্ড করুন

নিম্নলিখিত স্নিপেট যোগ করুন ' docker-compose.yml ' ফাইল। নীচের স্নিপেটে, ' নেটওয়ার্ক ' কী নেটওয়ার্ক নির্দিষ্ট করতে ব্যবহৃত হয়:

সংস্করণ: '3'
সেবা:

ওয়েব:
নির্মাণ:.
বন্দর:
- 8080 : 8080

এখন, ' ব্যবহার করে একটি পাত্রে অ্যাপ্লিকেশনটি চালু করুন docker- রচনা করা 'আদেশ:

docker- রচনা করা

আমরা ডকারে পোর্ট ফরওয়ার্ডিংয়ের পদ্ধতিগুলি কভার করেছি।

উপসংহার

কনটেইনারের বাইরে ডকারাইজ অ্যাপ্লিকেশন অ্যাক্সেস করার জন্য ডকারে পোর্ট ফরোয়ার্ড করতে, ব্যবহারকারী হয় ' -পি 'বা' - প্রকাশ করা ' বিকল্প ' ডকার রান ' কমান্ড বা ব্যবহারকারী ব্যবহার করতে পারেন ' বন্দর ডকার কম্পোজ ফাইলে ” কী। একটি নির্দিষ্ট নেটওয়ার্কে কন্টেইনার অ্যাক্সেস করার জন্য, ব্যবহারকারী ' -নেটওয়ার্ক <নেটওয়ার্ক> 'বিকল্প। এই ব্লগটি ডকারে পোর্ট ফরওয়ার্ড করার কৌশলগুলি প্রদর্শন করেছে।