source

도커: 드라이버가 끝점 웹 서버에서 외부 연결을 프로그래밍하지 못했습니다.

factcode 2023. 9. 16. 09:55
반응형

도커: 드라이버가 끝점 웹 서버에서 외부 연결을 프로그래밍하지 못했습니다.

문서에 따라 도커 예제를 실행하려고 합니다.

이것은 내 명령입니다.

docker run -d -p 80:80 --name webserver nginx

하지만 이런 오류가 발생합니다.

도커: 데몬의 오류 응답: 드라이버가 엔드포인트 웹 서버에서 외부 연결을 프로그래밍하지 못했습니다(bd57efb73c738e3b271db180ffbee0a56cae8193242fbc02ea805101df21e).userland proxy를 시작하는 동안 오류가 발생했습니다. Bind for 0.0.0:80: 예기치 않은 오류(Failure EADDRINUSE).

이거 어떻게 고쳐요?

의 에서 에서 의 에서 .EADDRINUSE포트 80이 도커 VM에서 이미 사용 중이거나 노트북에서 직접 사용 중임을 나타냅니다.해당 포트에서 실행 중인 포트를 중지하거나 도커 명령에 사용되는 포트를 변경할 수 있습니다.외부 포트 8080으로 변경하려면 다음을 사용합니다.

docker run -d -p 8080:80 --name webserver nginx

사용하지 않는 포트인 경우 도커를 다시 시작해 보십시오.저는 그게 보통 좋습니다.

enter image description here

저는 제 컨테이너 중 하나에 대해서도 같은 문제가 있었습니다.나는 모든 것을 시도했지만 아무 것도 되지 않자 다음을 시도했고 성공적으로 컨테이너를 다시 띄웠습니다.

 sudo service docker stop
 sudo rm /var/lib/docker/network/files/local-kv.db
 sudo service docker start

도커 서비스를 다시 시작해 봅니다.99% 효과가 있습니다.

service docker restart

예상대로 작동하지 않으면 위의 명령을 사용하여 PC를 다시 시작한 다음 도커 서비스를 다시 시작해 보십시오.

위의 항목 중 아무 것도 작동하지 않는 경우 노출된 포트를 사용되지 않는 다른 포트로 변경해 보십시오.

docker run -d -p 81:80 --name webserver nginx

참고:- 81은 호스트의 포트이고 80은 도커 컨테이너의 포트입니다.

문제를 해결하기 위해 다음 단계를 시도할 수 있으며 문제가 발생한 이유를 자세히 이해할 수도 있습니다.

단계-1: 다음 명령을 사용하여 실행 중인 모든 용기를 확인합니다.

docker ps

단계-2: 도달하려는 동일한 포트에서 실행 중인 컨테이너의 컨테이너 ID를 찾습니다.

enter image description here

단계-3: 다음 명령을 사용하여 동일한 포트에서 실행 중인 컨테이너를 중지합니다.

docker stop <container id> 

단계-4: 용기를 다시 제작합니다.

docker build -t DockerID/projectName .

5단계: 포트 매핑을 사용하여 동일한 포트에서 컨테이너를 실행합니다.

docker run -p 8080:8080 DockerID/projectName

다음 명령을 시도합니다.

sudo service docker restart

도움이 되지 않으면 서버를 다시 시작합니다.

중인 모든 중지 인 docker ps -a -q그런 다음 기계에서 도커를 정지시키고 다시 시작합니다.

최근 이 문제는 윈도우에서 많이 발생하기 시작했습니다.도커 재시작을 시도하거나 Windows 종료 전에 수동으로 도커를 중지할 수 있습니다. 재부팅 시 도커가 완전히 시작됩니다.2018년 7월 24일 도커 이슈 오픈 예정이며 자세한 내용은 https://github.com/docker/for-win/issues/1967 에서 확인하실 수 있습니다.

지금 포트 80에 무엇이 있는지 확인해 보세요.sudo ss -tulpn | grep :80

있을 .apache2를 실행하고 있을 수도 있습니다.확인하실 수 있습니다.sudo service apache2 status만약 그렇다면 -sudo service apache2 statop

위의 모든 솔루션을 시도했지만 여전히 문제가 있다면 리눅스 사용자를 위해 아래와 같이 Listen 포트를 수동으로 죽일 수 있습니다.

  1. sudols of -i-P-n | grep LISTEN
  2. sudo kill -9 <process_pid> (예: sudo kill -9 28563 28575 28719 28804)

제 경우 포트 80은 웹 서버의 기본 포트이므로 보호됩니다.더 큰 문제가 없도록 포트 60:8080으로 바인딩을 변경했습니다.바인딩을 다른 포트로 변경하면 도커 실행을 실행하여 브라우저에서 http://ip:60

저도 같은 오류로 같은 문제를 겪었습니다.지역 주민이 있는 한nginx내 컴퓨터에 설치되어 있고, 다른 컴퓨터를 실행하고 있습니다.nginx서킨를여을tnt에서 충돌이 했습니다.:80 설치의 . 를 하려고 입니다 입니다 하려고 를 .nginx아래와 같이

sudo service nginx stop

그 다음엔 도망칠 수 있을 겁니다nginx타고docker-compose up -d문제없이:

Creating MyWebServer ... done
Creating mongo    ... done
Creating redis    ... done

Windows 사용자: 도커 설명

윈도우즈 시스템에서는 CTRL+C가 컨테이너를 중지하지 않습니다.따라서 먼저 CTRL+C를 입력하여 프롬프트를 되돌리거나(또는 다른 셸을 엽니다), 도커 컨테이너를 입력하여 실행 중인 컨테이너를 나열한 다음 도커 컨테이너 중지를 입력하여 컨테이너를 중지합니다.그렇지 않으면 다음 단계에서 컨테이너를 다시 실행하려고 하면 데몬에서 오류 응답이 나타납니다.

저도 같은 문제가 있었습니다. CTRL+C로 컨테이너를 정지시킨 줄 알았는데 그렇지 않았습니다. 위의 답은 모두 컨테이너를 정지하거나 도커를 다시 시작하거나 컨테이너 명시를 정지하기 때문에 작동합니다.

나는 다음을 선호합니다.

docker container ls #list containers running
docker stop [container id] #replace [container id] with the container id running

나에게 있어서 단순한

ddev poweroff

고쳤습니다.

하는 가 하는 가 :ports - ... 도커-스캐너 파일에 저장하고, 스스로 할당할 수 있도록 합니다.또는 호스트의 포트 매핑을 다음에서 변경합니다.6379:63796378:6379저한테는 통했어요

이것은 여기에 설명된 대로 윈도우 "빠른 부팅"과 호환되지 않는 문제로 보입니다. (단지 도커 서비스를 다시 시작하는 것입니다.) 그리고 작동할 수도 있습니다.

https://github.com/docker/for-win/issues/2722

이는 도커 및 패스트부트와 호환되지 않기 때문에 발생합니다.Windows(윈도우)를 종료하기 전에 모든 컨테이너를 중지했는지 확인하거나 다음을 수행하여 Windows(윈도우)의 전원 설정에서 Fastboot(고속 부팅)을 사용하지 않도록 설정할 수 있습니다.

CTRL+R > "powercfg.cpl" > "Choose what the power buttons do" > "Change settings that are currently unavailable" > Deselect "Turn on fast start-up"

파워셸에서 명령어 하나로 패스트부트를 비활성화할 수도 있습니다.

Set-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power\' -Name HiberbootEnabled -Value 0

WSL을 사용하는 경우 위의 모든 것을 시도했지만 여전히 작동하지 않는 경우 관리자 권한과 shutdown 명령을 사용하여 Powershell에서 WSL을 재시작하려고 했습니다.

wsl --shutdown

그것은 저에게 효과가 있었습니다.

언급URL : https://stackoverflow.com/questions/39508018/docker-driver-failed-programming-external-connectivity-on-endpoint-webserver

반응형