docker - ইউজারল্যান্ড প্রক্সি শুরু করার সময় ত্রুটি: 0.0.0.0:80 এর জন্য আবদ্ধ: অপ্রত্যাশিত ত্রুটি অনুমতি অস্বীকার করেছে
windows-10 (10)
অ্যাডমিনিস্ট্রেটর হিসাবে সিএমডি উইন্ডো থেকে উইন্ডোজ 10 প্রো চলমান ডকার কমান্ডে, এখনও আমার কাছে সমস্যাগুলি রয়েছে (উপরের @ মিকায়েল-চুদিনভ অনুসারে)। আমি সত্যিই 80 বন্দরটি ব্যবহার করতে চাই যাতে অন্যান্য উত্তরগুলি আমার পক্ষে উপযুক্ত না হয়।
www.jens79.de এ www.jens79.de এই ব্লগ পোস্টটি দয়া করে দেখুন
পাওয়ারশেল থেকে কমান্ডটি চালান:
Get-NetTCPConnection -LocalPort 80 | Format-List
এটি আমার জন্য পিড = 4 দিয়ে একটি একক প্রক্রিয়া দেখিয়েছে
সিস্টেম মনিটরে এটি "সিস্টেম" প্রক্রিয়া, তবে উপরে তালিকাভুক্ত নিবন্ধ অনুযায়ী এটি আসলে আইআইএস "ওয়ার্ল্ড ওয়াইড ওয়েব প্রকাশনা পরিষেবা" হিসাবে চলছে running
ধরে নিই যে উইন্ডোজ পরিষেবাদির কনসোলে আপনার আইআইএস চলমান দরকার নেই, "ওয়ার্ল্ড ওয়াইড ওয়েব প্রকাশনা পরিষেবা" বন্ধ করুন এবং অক্ষম করুন, তারপরে আবার চেষ্টা করুন।
আমি উইন্ডোজ 10 প্রো এর অধীনে সর্বশেষতম ডকার সিই, 17.09 চালিয়ে যাচ্ছি এবং দুটি ভিন্ন উদাহরণ ব্যবহার করে অনুমতি বঞ্চিত হচ্ছি।
ডকার সাইটের উদাহরণ:
docker run -d -p 80:80 --name webserver nginx
docker run -p 80:80 hello-world
সাইট ডকার উদাহরণ:
docker run -p 80:80 hello-world
উভয় একই ত্রুটি ফিরে।
ডকার: ডেমনের ত্রুটির প্রতিক্রিয়া: ড্রাইভারটি এন্ডয়েন্টপয়েন্টে বহিরাগত সংযোগের প্রোগ্রামিং করতে ব্যর্থ হয়েছে XXXXX : ইউজারল্যান্ড প্রক্সি শুরু করার সময় ত্রুটি: 0.0.0.0.80 এর জন্য বাঁধুন: অপ্রত্যাশিত ত্রুটি অনুমতি অস্বীকার করেছে।
আপনার প্রথম পদক্ষেপ নেওয়া উচিত হ'ল কমান্ডটি চালানো:
netstat -aon | findstr [port#]
প্রদত্ত বন্দরে কোনও প্রক্রিয়া চলছে কিনা এটি আপনাকে জানাবে। যদি এটি হয় তবে আপনি কমান্ডটি দিয়ে প্রক্রিয়াটি মেরে ফেলতে পারেন:
taskkill /PID [PID] /F
এটি সেই বন্দরটি ব্যবহার করে প্রক্রিয়াটিকে হত্যা করবে। তারপরে আপনি বন্দরে একটি নতুন প্রক্রিয়া বাঁধতে সক্ষম হবেন।
আমি এমন সময়ও পেরিয়ে এসেছি যখন
netstat -aon
ফিরে
netstat -aon
যে আমি যে বন্দরের ব্যবহার করতে চাইছিলাম তা কোনও প্রক্রিয়া চলছিল কিন্তু এটি সত্যই একটি প্রক্রিয়া চলছিল যা আমাকে বন্দরে নতুন প্রক্রিয়া চালাতে দিচ্ছিল না ।
আমি নিম্নলিখিতটি দিয়ে সমস্যার প্রতিকার করতে সক্ষম হয়েছি:
নেটওয়ার্কিং দিয়ে উইন্ডোজটি সেফ মোডে শুরু করুন
পাওয়ারশেল / সেমিডিতে কমান্ডটি চালান:
netsh int ipv4 add excludedportrange protocol=tcp startport=[PORT] numberofports=1
এটি পোর্টটি রিজার্ভ করবে সুতরাং আপনি যখন সাধারণ উইন্ডোজ মোডে ফিরে আসেন তখন কোনও অ্যাপ্লিকেশন পোর্টটি ব্যবহার করার আগে এটি চুরি করতে পারে না।
আমি উইন্ডোজ 10 প্রোতে আমার সমস্যাটি সমাধান করেছি, পরিণত হয়েছে যে আমি ওয়ার্ল্ড ওয়াইড ওয়েব প্রকাশনা পরিষেবাটি কোনওভাবে চালু করেছি।
আমাকে এটি খুঁজে পেতে কিছুটা সময় নিয়েছে,
netstat -a -n
মাধ্যমে উল্লেখ করার পরে যে আমার কাছে কোথাও / 80 শ্রোতা রয়েছে।
বোকা আমাকে।
এটি বন্ধ করুন, এবং আমি পোর্ট 80 দিয়ে ভাল ছিলাম।
আমি এই ত্রুটিটি পেয়েছি কারণ বন্দরটি ইতিমধ্যে ব্যবহৃত হয়েছিল। অন্য কোনও বন্দরে পরিবর্তিত হয়েছে এবং আমি আর এই ত্রুটিটি পাই নি।
একটি পুরানো প্রকল্প বজায় রাখার জন্য একটি ডকার পরিবেশ লোড করার চেষ্টা করার সময় আমি সম্প্রতি এই বিষয়টি নিয়ে এসেছি। আমার ক্ষেত্রে, সাম্প্রতিক ওএস আপডেটের পরে আমার ম্যাকে অ্যাপাচি-র ডিফল্ট দৃষ্টান্তটি চলছিল এবং 80 পোর্ট উপলব্ধ হওয়ার আগে বন্ধ করে দেওয়া দরকার। আপনি এই আদেশ দিয়ে এটি বন্ধ করতে পারেন:
sudo /usr/sbin/apachectl stop
যদি আপনার এখনও সমস্যা হয় তবে প্রদত্ত বন্দরে কী চলছে তার পিআইডি দেখতে আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন (এই ক্ষেত্রে 80):
lsof -t -i :80
কিল কমান্ডের সাহায্যে এই পোর্টগুলিতে যা চলছে তা বন্ধ করার চেষ্টা করতে পারেন; শুধু নিশ্চিত হয়ে নিন যে আপনি কোনও গুরুত্বপূর্ণ কিছু হত্যা করতে যাচ্ছেন না!
kill $(lsof -t -i :80)
এটি আমাকে সাহায্য করেছিল। ত্রুটি বার্তায় উল্লিখিত বন্দরটি অবশ্যই সংরক্ষিত বন্দর সীমার মধ্যে ছিল: উইন্ডোজ 49690 এর উপরে পোর্টে বাঁধতে পারে না
বন্দরটি ডিবাগিং ছাড়াই ভিজ্যুয়ালস্টুডিওর দ্বারা ব্যবহৃত। ভিএস বন্ধ করুন তারপরে আবার খুলুন।
সমস্যাটি হ'ল 80 পোর্টে আপনার ছবি চালানোর অনুমতি নেই so এটি করতে আপনার ডকার রান কমান্ডটিতে --user মূল যুক্ত করুন। এটি রুট সুবিধাদি সরবরাহ করবে এবং এটি চলবে।
হোস্ট মেশিনে nginx শুরু হয়েছে কিনা তা যাচাই করুন এবং এটি বন্ধ করুন।
sudo service nginx stop