আমি কীভাবে ডকারের সাথে 1 টিরও বেশি বন্দর প্রকাশ করতে পারি?


455

সুতরাং আমার কাছে 3 টি বন্দর রয়েছে যা মেশিনের ইন্টারফেসের সাথে প্রকাশ করা উচিত। ডকার পাত্রে এটি করা কি সম্ভব?


1
একাধিক পোর্ট পুনর্নির্দেশ করা সম্ভব। ডকো দেখুন: ডকস.ডোকার.ইও
মার্ক ও'কনোর

উত্তর:


713

মাত্র একটি বন্দর উন্মোচন করতে, আপনার যা করা দরকার তা এটি:

docker run -p <host_port>:<container_port>

একাধিক বন্দর প্রকাশ করতে, কেবল একাধিক -pযুক্তি সরবরাহ করুন:

docker run -p <host_port1>:<container_port1> -p <host_port2>:<container_port2>

4
ধন্যবাদ! এটি এখানে ডক্সগুলিতে পাওয়া গেছে: ডকস.ডোকার.com / userguide / dockerlinks/… যেখানে বলা হয়েছেNote: The -p flag can be used multiple times to configure multiple ports.
টেড এম ইয়ং

একটি কনফিগার ফাইলে পোর্টগুলি নির্দিষ্ট করার কোনও উপায় আছে কি? উদাহরণস্বরূপ বিকল্প ব্যবহার করে --env-file?
জিওভান্নি বিটলিনার

8
@GiovanniBitliner আমি এখনও বেশ এই নতুন, কিন্তু আমি নিশ্চিত আপনার সাথে একটি Dockerfile বন্দরগুলি সংজ্ঞায়িত করবে আছি এক্সপোজ , তারপর সঞ্চালন docker run -P(বড় হাতের নোট) যা স্বয়ংক্রিয়ভাবে সব পোর্ট Dockerfile মধ্যে এক্সপোজ সংজ্ঞায়িত অনাবৃত
টেড Avery,

একাধিক পোর্ট একটি সিস্টেমড পরিষেবা ফাইলের অধীনে init প্রক্রিয়াটি থামিয়ে দিতে পারে?
ল্যান্টি

1
আমি মনে করি এখানে সঠিক শব্দটি publishনয় expose
tgogos

289

ধাপ 1

আপনার মধ্যে Dockerfile, আপনি EXPOSEএকাধিক বন্দর প্রকাশের জন্য ক্রিয়াটি ব্যবহার করতে পারেন ।
যেমন

EXPOSE 3000 80 443 22

ধাপ ২

তারপরে আপনি উপরের ভিত্তিতে একটি নতুন চিত্র তৈরি করতে চান Dockerfile
যেমন

docker build -t foo:tag .

ধাপ 3

তারপর আপনি ব্যবহার করতে পারেন -pউপরের হিসাবে সংজ্ঞায়িত, ধারক পোর্টের সাথে হোস্ট বন্দর ম্যাপ EXPOSEএর Dockerfile
যেমন

docker run -p 3001:3000 -p 23:22

আপনি যদি ধারাবাহিক বন্দরগুলির একটি ব্যাপ্তি প্রকাশ করতে চান তবে আপনি এই জাতীয় ডকার চালাতে পারেন:

docker run -it -p 7100-7120:7100-7120/tcp 

17
এক্সপোজ হ'ল কেবল পোর্টগুলির জন্য ডকুমেন্টেশন যা প্রকাশিত হয় এবং কেবল লিঙ্কিংয়ের জন্য দরকারী। -P ব্যবহার করে বন্দরগুলির একটি সম্পূর্ণ তালিকা পাওয়া যাবে এবং সেগুলি হোস্টের একটি উপলব্ধ বন্দরে স্বয়ংক্রিয়ভাবে ম্যাপ করা হবে।
অরুণ গুপ্ত

4
এক্সপোজ প্রয়োজন হয় না। প্রথম পদক্ষেপটি সরান বা এটি alচ্ছিক করুন।
আমিরহসিন

27

আপনি যদি docker-compose.ymlফাইল ব্যবহার করেন :

services:
    varnish:
        ports:
            - 80
            - 6081

আপনি হোস্ট / নেটওয়ার্ক পোর্টও নির্দিষ্ট করতে পারেন

varnish:
    ports:
        - 80:80
        - 6081:6081

0

আপনি যদি কোনও চিত্র থেকে একটি ধারক তৈরি করছেন এবং একাধিক বন্দর প্রকাশ করতে চান (প্রকাশ করবেন না) আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:

ডকার তৈরি করুন - নাম container name--প্রকাশ করুন 7000 --প্রেস 7001image name

এখন, আপনি যখন docker startকমান্ডটি ব্যবহার করে এই ধারকটি শুরু করবেন , উপরের কনফিগার করা পোর্টগুলি উন্মুক্ত হবে।

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