카테고리 없음

Docker - (HTTP code 500) server error - Ports are not available: exposing port TCP 0.0.0.0:xxxx-> 0.0.0.0:0: listen tcp 0.0.0.0:xxxx: bind: An attempt was made to access a socket in a way forbidden by its access permissions.

누한 2024. 9. 9. 13:35
반응형

안녕하세요

 

이번글은 이번에 Docker 관련해서 서버 구성시 문제가 있었던 Port 관련 에러에 대한 대처법입니다.

 

에러 메세지는 다음과 같습니다.

 

(HTTP code 500) server error - Ports are not available: exposing port TCP 0.0.0.0:3000 -> 0.0.0.0:0: listen tcp 0.0.0.0:3000: bind: An attempt was made to access a socket in a way forbidden by its access permissions.

 

저의 경우 기존에 설치되어 있던 Docker 컨테이너를 삭제 후 재설치 진행중에 갑자기 위와 같은 에러가 발생했습니다.

 

해결방법 부터 정리하면 다음과 같습니다.

아래 1번 부터 4번까지 수행 후 다시 설치 또는 실행을 하면 정상적으로 작동합니다.

 

1. 포트 허용에 대한 목록 확인
netsh interface ipv4 show excludedportrange protocol=tcp

2. 포트 수정을 위한 서비스 중지 ( cmd 관리자 모드 필수 )
net stop winnat
 
3. 포트 수정 (제한 해제, 저의 경우 3000번)
netsh int ipv4 add excludedportrange protocol=tcp startport=3000 numberofports=1

4. 서비스 재시작 ( cmd 관리자 모드 필수)
net start winnat

 

 

 

##### 추가 설명 #######

(HTTP code 500) server error - Ports are not available: exposing port TCP 0.0.0.0:3000 -> 0.0.0.0:0: listen tcp 0.0.0.0:3000: bind: An attempt was made to access a socket in a way forbidden by its access permissions.

 

 

위의 에러는 보통 3000번 포트를 이미 다른 서비스에서 사용중일 경우 많이 발생합니다.

즉 인터넷에서 검색하시면 대부분 포트 확인하라는 결과가 나온다는 것이죠.

 

이것때문에 저도 많이 고생했습니다.

 

그리고 2번째로 많이 검색되는 해결 방법중에 하나가 Docker 를 재설치 하라는것......

이것도 해결이 된다는 보장은 없습니다.

 

특히 저와 같이 정상적으로 되다가 재설치시 문제가 발행하는 경우에는요.

 

 

그래서 저는 Permission 이라는 부분으로 눈을 돌리고 다시 찾기 시작했습니다.

그리고 찾은 내용은 winnat 서비스...

 

그리고 이 서비스에서 Port 허용에 대한 부분이 있었습니다.

 

이 내용을 기준으로 찾아보니 금방 해결책을 찾을수 있었습니다.

(참고로, 해당 서비스 수행을 위해서는 관리자 권한이 필요합니다.

이글을 읽는 정도라면 관리자 모드로 실행하는것은 모두 아시리라 생각합니다.

 

 

많은 길을 돌아서 왔지만, 그래도 해결되니 기분이 좋네요.

 

 

그럼 모두 즐거운 하루하루 되시기 바랍니다.

 

 

반응형