Docker container 실행 실패
문제 :
Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:8080 -> 0.0.0.0:0: listen tcp 0.0.0.0:8080: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
발생하지 않던 위의 메시지가 갑자기 발생..
원인 :
원인은 포트의 중복된 사용이 있다는 말이었음
이로 인해 정상적으로 container가 실행되지 않음 (docker compose up 실패)
powershell에서 내가 지금 사용할 수 없는 포트 번호를 확인할 수 있는 방법이 있음
~$ netsh interface ipv4 show excludedportrange protocol=tcp

이와 같은 결과가 나오는데, 결과를 보면 시작포트 부터 끝 포트까지 해당되는 포트 번호를 사용할 수 없다는 뜻
예를 들면, 사용하고자 하는 포트 번호가 11005 번인데 이 번호는 첫번째 포트 번호 범위에 들어가있어 사용할 수 없음
해결방법 :
생각보다 해결 방법이 간단하다.
- powershell을 관리자권한으로 실행
- shell 창에 명령어 실행 -> 사용불가한 포트번호 확인
~$ netsh interface ipv4 show excludedportrange protocol=tcp
- 아래의 명령어를 실행하여 사용하고자하는 포트를 예약
netsh int ipv4 add excludedportrange protocol=tcp startport=8000 numberofports=99 store=persistent
코드를 보면 'startport=8000' 부터 'numberofports=99' 99개의 포트를 사용하겠다는 의미입니다.
이렇게 예약을 하고 다시 해당 명령어를 입력하면
~$ netsh interface ipv4 show excludedportrange protocol=tcp

위와 같이 사용하고자 하는 포트 번호가 예약된 것을 확인 할 수 있습니다.
꼭! 관리자 권한으로 실행하셔서 입력하시면 정상적으로 원하는 포트 번호 사용하실 수 있습니다!
'ssung_데이터 엔지니어링 > 12주차_3차 프로젝트' 카테고리의 다른 글
3차 프로젝트_(5) (0) | 2024.01.13 |
---|---|
3차 프로젝트_(3) (0) | 2024.01.11 |
3차 프로젝트_(2) (0) | 2024.01.10 |
3차 프로젝트_(1) (0) | 2024.01.08 |