ডকার ত্রুটি বাঁধাই: ঠিকানা ইতিমধ্যে ব্যবহৃত


94

আমি যখন docker-compose upআমার ডকার প্রজেক্টে চলেছি তখন নীচের বার্তার সাথে এটি ব্যর্থ হয়:

Error starting userland proxy: listen tcp 0.0.0.0:3000: bind: address already in use

netstat -pna | grep 3000 এটি দেখায়:

tcp        0      0 0.0.0.0:3000            0.0.0.0:*               LISTEN      -  

আমি ইতিমধ্যে চেষ্টা করেছি docker-compose down, কিন্তু এটি কোনও উপকার করে না।


7
sudo netstat -pna | grep 3000যে প্রক্রিয়াটি শুনছে তা পেতে একটি চালান ।
বিএমবিচ

4
আপনার আউটপুট দেখায় যে ইতিমধ্যে 3000 পোর্টে কিছু অন্যান্য প্রক্রিয়া শুনছে। আপনি অন্য কিছু বন্দর ব্যবহার করতে পারেন? sudoপ্রক্রিয়া নাম দেখতে চেষ্টা করুন ।
টেকতবাবু

হ্যাঁ, এই বন্দরে কিছুটা ছিল। থ্যাঙ্কস! আমি জানি sudoনা আউটপুট পরিবর্তন করতে পারে :)
এনগ্রোর

আমার জন্য এটি 8888 বন্দর যা ডকার প্রক্সি
নীল ম্যাকগুইগান

: আমি এই উত্তর এই একই সমস্যা সংশোধন stackoverflow.com/a/58772307/3530707
jmojico

উত্তর:


92

আপনার ক্ষেত্রে এটি অন্য কিছু প্রক্রিয়া ছিল যা বন্দরটি ব্যবহার করছিল এবং মন্তব্যে যেমন নির্দেশিত হয়েছিল, sudo netstat -pna | grep 3000সমস্যা সমাধানে আপনাকে সহায়তা করেছে।

অন্যান্য ক্ষেত্রে (আমি নিজেও এটি বহুবার মুখোমুখি হয়েছি) যদিও এটি বেশিরভাগ ক্ষেত্রে একই পাত্রে চলমান। যে ক্ষেত্রে docker psহিসাবে প্রায়ই আমি একই পাত্রে অন্যান্য ডিরেক্টরি চলমান বাম এবং তারপর অন্যান্য স্থানে, যেখানে একই ধারক নাম ব্যবহার করা হয়েছে এ আবার চলমান চেষ্টা খুব সহায়ক ছিল।

কীভাবে docker psআমাকে সহায়তা করেছে: docker rm -f $(docker ps -aq) একটি শর্ট কমান্ড যা আমি সমস্ত পাত্রে সরিয়ে ফেলার জন্য ব্যবহার করি।

সম্পাদনা: যুক্ত হয়েছে কীভাবে docker psআমাকে সহায়তা করেছে।


4
আসলে, আমার প্রায়শই এই সমস্যা হয়। এবং কিছুই নয়, docker-compose downসহায়তা করে
এনগরাল

এটি আপনাকে অবশ্যই যে ডিরেক্টরিতে চালাচ্ছিল একই ডিরেক্টরিতে চালাচ্ছে এই শর্তে এটি অবশ্যই সহায়তা করবে docker-compose up। আমি ইতিমধ্যে চলমান ধারকটি সন্ধান করার জন্য এবং আমার পছন্দসই পদক্ষেপ নেওয়ার জন্য আমার উত্তরে প্রস্তাব দিচ্ছি। আমি তাদের অপসারণ করার জন্য উপযুক্ত মনে করেছি, যদি কেউ অপসারণ করতে না চায়, তবে তাদের থামানোর জন্য rmব্যবহারের পরিবর্তে রয়েছে stop
আয়ুষ্য

4
আমার একই পোর্টে অন্য একটি সার্ভার চলছে যা tensorflow/tensorflowচিত্রটি চালিত হবে। আমি কীভাবে আমার ইমেজটিকে অন্য বন্দরে চালানোর জন্য সেটআপ করতে পারি। আমি এটি চেষ্টা করেছি: docker run -it -d -p 8888:8000 tensorflow/tensorflow আমি আমার ইমেজ থেকে ৮৮৮৮ বন্দরটি ক্লায়েন্টের সাথে আটকে রেখেছি, তবে কাজ করে না।
ইমানুয়েল ফন্টেললেস

4
@ ইমানুয়েলফোনটেলস যখন ডিবাগ করার চেষ্টা করছেন তখন -dবিকল্পটি ব্যবহার করবেন না । এখন, বন্দর হিসাবে হিসাবে উন্মুক্ত করা হয় HOST:CONTAINER। সুতরাং আপনার চালানো উচিতdocker run -it -p 8000:8888
আয়ুষ্যা

60

এটি আমাকে সহায়তা করেছে:

docker-compose down  # Stop container on current dir if there is a docker-compose.yml
docker rm -fv $(docker ps -aq)  # Remove all containers
sudo lsof -i -P -n | grep <port number>  # List who's using the port

এবং তারপরে: kill -9 <process id>(ম্যাকোস) বাsudo kill <process id> (লিনাক্স)।

উত্স: ব্যবহারকারী Rub21 মন্তব্য


4
docker rm -fv $(docker ps -aq)এই লাইনটি আমার দরকার ছিল। ধন্যবাদ
রায়ান ওয়াকার 16

lsof একটি মোহন কাজ করেছে, প্রক্রিয়াটি মেরে ফেলেছে এবং আবার কার্যক্রমে ফিরে এসেছে ....
মিঃ ই

11

আমার একই সমস্যা ছিল
docker-compose down --rmi all(একই ডিরেক্টরিতে যেখানে আপনি ডকার-কমপোজ চালান)
সহায়তা করে


4
হ্যাঁ, এটি সর্বদা সহায়তা করে তবে downআপনি যা করতে চান তা সর্বশেষতম কাজ। বর্তমান অবস্থা হারাতে চিনির টুকরো নয়।
নিগ্রাল

4
এটি আপনার আঁকা স্থানীয় ডকার চিত্রগুলিও মুছে ফেলবে তাই এটি সাবধানতার সাথে ব্যবহার করুন
মাইকা সিমন্স

আপনার উল্লেখ করা উচিত ছিল এটি উত্তরে স্থানীয় ডকার চিত্রগুলি মুছে ফেলবে।
আহমেদ নূর জামাল এল-দিন

8

লিনাক্স / ইউনিক্সের জন্য:

নিম্নলিখিত কমান্ডটি ব্যবহার করে লিনাক্স ইউটিলিটির জন্য সন্ধান করুন

netstat -nlp | grep 8888

এটি এই বন্দরে প্রসেসিং চলমান দেখায়, তারপরে সেই প্রক্রিয়াটির পিআইডি (সারিবদ্ধভাবে একটি পিআইডি সন্ধান করুন) ব্যবহার করে সেই প্রক্রিয়াটিকে হত্যা করে।

kill PID

নেটস্যাট পিআইডি / প্রোগ্রাম দেখায় (উদাঃ 2714 / বিভক্ত) .সুডো কিল 2714 কাজ করে। ধন্যবাদ
রায়


4

আমার ক্ষেত্রে ছিল

ইউজারল্যান্ড প্রক্সি শুরু করার সময় ত্রুটি: শুনুন tcp 0.0.0.0:9000: বাইন্ড: ঠিকানা ইতিমধ্যে ব্যবহৃত

এবং আমার যা দরকার তা হ'ল পিএইচপি ঝড়ের মধ্যে ডিবাগ শ্রবণ বন্ধ করা আইকন


4

কিছু ক্ষেত্রে কনটেইনারটি বন্ধ করার আগে বা কোনও প্রক্রিয়া হত্যার আগে সমস্যার আরও গভীরভাবে ডিবাগিং করা সমালোচনামূলক।

নীচের চেকলিস্ট অনুসরণ নিম্নলিখিত বিবেচনা করুন:

1) আপনি বর্তমান Docker রচনা পরিবেশ পরীক্ষা করুন
চালান docker-compose ps
তাহলে বন্দর অন্য ধারক ব্যবহার করছে, সঙ্গে এটা বন্ধ docker-compose stop <service-name-in-compose-file>বা প্রতিস্থাপন দ্বারা এটিকে সরাতে stopসঙ্গেrm

2) পাত্রে আপনার বর্তমান কর্মক্ষেত্র বাহিরে চলমান পরীক্ষা
চালান docker psআপনার হোস্ট অধীনে চলমান সব পাত্রে তালিকা দেখতে।
যদি আপনি দেখতে পান যে বন্দরটি অন্য কোনও ধারক ব্যবহার করছে তবে আপনি এটি দিয়ে থামাতে পারেন docker stop <container-id>
(*) কারণ আপনি মূল composeপরিবেশের আওতায় নেই - ডকার ইন্সপেক্ট ব্যবহার করা প্রথমে ভাল অভ্যাস সে সম্পর্কে আরও তথ্য সংগ্রহের জন্য ।

3) হোস্টে চলমান অন্যান্য প্রক্রিয়াগুলি দ্বারা পোর্টটি ব্যবহার করা হয়েছে কিনা তা পরীক্ষা করুন
উদাহরণস্বরূপ পোর্টটি যদি 79৩79৯ রান করে:

$ sudo netstat -ltnp | grep ':6379'
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      915/redis-server 12 
tcp6       0      0 ::1:6379                :::*                    LISTEN      915/redis-server 12

(*) আপনি lsof কমান্ডটিও ব্যবহার করতে পারেন যা মূলত বিভিন্ন প্রক্রিয়া দ্বারা খোলা ফাইলগুলির তথ্য পুনরুদ্ধার করতে ব্যবহৃত হয় (আমি তার netstatআগে চলার পরামর্শ দিই )।

সুতরাং, আউটপুট ক্ষেত্রে উপরের PIDহয় 915। এখন আপনি চালাতে পারেন:

$ ps j 915
 PPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND
    1   915   915   915 ?           -1 Ssl    123   0:11 /usr/bin/redis-server 127.0.0.1:6379

এবং প্যারেন্ট প্রসেসের আইডি ( PPID) এবং এক্সিকিউশন কমান্ডটি দেখুন।
আপনি এটিও চালাতে পারেন: $ pstree -s <PID>প্রক্রিয়াটির দৃশ্যমান প্রদর্শন এবং এর সম্পর্কিত প্রক্রিয়াগুলি।

আমাদের ক্ষেত্রে আমরা দেখতে পাচ্ছি যে প্রক্রিয়াটি সম্ভবত ডেমন (পিপিআইডি হ'ল 1) - সেই ক্ষেত্রে চলমান বিবেচনা করুন:
ক) প্রক্রিয়াটির $ cat /proc/<PID>/statusদ্বারা প্রসারিত থ্রেডের সংখ্যার মতো প্রক্রিয়া সম্পর্কে আরও গভীরতর তথ্য পাওয়ার জন্য, এর ক্ষমতা ইত্যাদি '
খ) $ systemctl status <PID>দেখার জন্যইউনিট যা একটি নির্দিষ্ট প্রক্রিয়া তৈরির কারণ ঘটায়। যদি পরিষেবাটি গুরুত্বপূর্ণ না হয় - আপনি পরিষেবাটি বন্ধ এবং অক্ষম করতে পারেন ।

4) ডকার পরিষেবা পুনরায় চালু করুন
:sudo service docker restart

5) আপনি এই মুহুর্তে পৌঁছেছেন এবং ..
কেবলমাত্র যদি এটি আপনার সিস্টেমকে ঝুঁকিতে না ফেলে - সার্ভার পুনরায় চালু করার কথা বিবেচনা করুন।


2

আমি আজ বিকেলে আমার ডকারকে আপগ্রেড করেছি এবং একই সমস্যায় পড়েছি। আমি ডকার পুনরায় চালু করার চেষ্টা করেছি তবে ভাগ্য নেই।

অবশেষে, আমাকে আমার কম্পিউটার পুনরায় চালু করতে হয়েছিল এবং এটি কাজ করেছিল। অবশ্যই একটি বাগ।


পুনরায় চালু করা আমার পক্ষেও সহায়তা করেছিল। ধন্যবাদ
আলেকজান্ডার

1

চেক করুন docker-compose.yml, পোর্টটি দু'বার নির্দিষ্ট করা হয়েছে এমন ঘটনা হতে পারে।

version: '3'
services:
  registry:
    image: mysql:5.7
        ports:
      - "3306:3306"             <--- remove either this line or next
      - "127.0.0.1:3306:3306"

0

আমি একই সমস্যা কয়েকবার দৌড়েছি। ডকার পুনরায় আরম্ভ করা কৌশলটি মনে হচ্ছে


আমি দেখছি কীভাবে একটি ধারক পুনরায় চালু করতে হবে। কীভাবে ডকার পুনরায় চালু করবেন?
মার্ক ওয়ার্ডেল


0
docker-compose down --rmi all 

এবং তারপরে আপনার কম্পিউটার পুনরায় চালু করুন


7
আট বছরের অন্য তিনটি উত্তর দিয়ে তিন বছরের পুরানো প্রশ্নের উত্তর দেওয়ার সময় আপনার উত্তরটির প্রশ্নের নতুন দিকটি কী যুক্তিযুক্ত তা নির্দেশ করা কার্যকর।
জেসন অ্যালার

0

@ দিমিত্রিসান্ডালভের উত্তরের একটি ভিন্নতা: আমার ৮০৮০ তে টমক্যাট / জাভা চলছিল, যা চালিয়ে যাওয়া দরকার। ডকার-কমপোজ.আইএমএল ফাইলটির দিকে তাকিয়ে আমার 8080 বাছাই করা 8080 এর জন্য এন্ট্রি পরিবর্তন করে।

nginx:
  build: nginx
  ports:
    #- '8080:80' <-- original entry
    - '8880:80'
    - '8443:443'

নিখুঁতভাবে কাজ করেছেন। (একমাত্র বলি হ'ল পরিবর্তনটি মুছে ফেলা হবে যদি আমি কখনই প্রকল্পটি আপডেট করি, যেহেতু এটি কোনও বাহ্যিক রেপো থেকে আসছে))


0

আপনার যদি একই সমস্যা থাকে এবং উইন্ডোজের সাথে থাকে তবে কেবলমাত্র একটি পার্শ্ব নোট:

আমার ক্ষেত্রে আমার পদ্ধতিটি ঠিক আছে grafana-server.exe। কারণ আমি প্রথম বাইনারি সংস্করণ ডাউনলোড করেছি এবং এক্সিকিউটেবলকে ডাবল ক্লিক করেছি এবং এটি এখন ব্যবহারকারীর দ্বারা পরিষেবা হিসাবে শুরু হয় SYSTEMযা আমি করতে পারি নাtaskkill (অনুমতি নেই)

আমাকে উইন্ডোজের "পরিষেবা পরিচালক" এ গিয়ে পরিষেবা "গ্রাফানা" অনুসন্ধান করতে হবে, এবং এটি বন্ধ করতে হবে। এই বন্দরের পরে 3000 আর দখল করা হয় না।

আশা করি এইটি কাজ করবে.


0

যেটি 8888 বন্দরটি ব্যবহার করছিল সে ছিল বৃহস্পতি এবং আমাকে অন্য একটি বন্দরে চালানোর জন্য বৃহস্পতি নোটবুকের কনফিগারেশন ফাইলটি পরিবর্তন করতে হয়েছিল।

সেই নির্দিষ্ট পোর্টটি কে ব্যবহার করছে তা তালিকাভুক্ত করতে। sudo lsof -i -P -n | গ্রেপ 9

আপনি Jupyter the / .jupyter / jupyter_notebook_config.py এ নিম্নোক্ত লাইনটি সম্পাদন করতে চান এমন পোর্টটি নির্দিষ্ট করতে পারেন:

সি.নোটবুক অ্যাপ.পোর্ট = 9999

যদি আপনার কাছে জপিটার_নোটবুক_কনফিগ.পি না থাকে তবে জুপিটার নোটবুক চালানোর চেষ্টা করুন - জেনারেট-কনফিগার করুন। জুপিটার কনফিগারেশন সম্পর্কিত আরও তথ্যের জন্য এটি দেখুন।


0

নেটওয়ার্ক_মোড পরিবর্তন করা: "ব্রিজ" থেকে "হোস্ট" এটি আমার জন্য করেছে।

এই সঙ্গে

version: '2.2'
services:
  bind:
    image: sameersbn/bind:latest
    dns: 127.0.0.1
    ports:
      - 172.17.42.1:53:53/udp
      - 172.17.42.1:10000:10000
    volumes:
        - "/srv/docker/bind:/data"
    environment:
      - 'ROOT_PASSWORD=secret'
    network_mode: "host"

0

এটি চলমান হওয়ার আগে: ডকার রান-ডি - নাম ওরাকল -p 1521: 1521 -p 5500: 5500 কিউএ / ওরাকল আমি সবেমাত্র পোর্টটি ডকার রান-ডি - নাম ওরাকল -p 1522: 1522 -p 5500 এ পরিবর্তন করেছি: 5500 কিউএ / ওরাকল

এটা আমার জন্য ভাল কাজ করেছিল !


0

আমার মেশিনে netstat -tulpnইন-ইউজ পোর্ট (৮০৮০) এর জন্য এই কমান্ড থেকে একটি পিআইডি প্রদর্শিত হচ্ছে না , তাই আমি এটি মারতে পারি না, পাত্রে মেরে ফেলে কম্পিউটার পুনরায় চালু করা কাজ করে না। সুতরাং service docker restartকমান্ডটি আমার (উবুন্টু) জন্য পুনরায় সূচনা করল এবং বন্দরটি আর ব্যবহার করা হয়নি এবং আমি একটি খুশির আড্ডা এবং মধ্যাহ্নভোজনে যাচ্ছি।


0

আমি যখন একটি নতুন কনটিয়ার চালু করার চেষ্টা করছিলাম তখন আমি নীচের ত্রুটিটি পেয়েছিলাম- শুনুন tcp 0.0.0.0:8080: বাইন্ড: ইতিমধ্যে ব্যবহারের ঠিকানা।

সমাধান: নেটস্ট্যাট -টুলনপ | গ্রেপ 8080

[root@ip-112-x6x-2x-xxx.xxxxx.compute.internal (aws_main) ~] # নেটস্যাট-টুলএনপি | গ্রেপ 8080 টিসিপি 0 0 0.0.0.0:8080 0.0.0.0:* তালিকাভুক্ত 12749 / জাভা [root@ip-112-x6x-2x-xxx.xxxxx.compute.in অন্তর্নিহিত (অ্যাউজ_মাইন) ~] #

কিল -9 12749

তারপরে এটি কাজ করা কনটেইনারটি আবার চালু করার চেষ্টা করুন


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