집에서는 윈도우 PC 를 사용하면서 Docker Desktop 을 이용하는데 간혹 포트를 사용할 수 없다는 문구가 나올 때가 있다.
(HTTP code 500) server error - Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
잘 사용하고 있던 포트인데 갑자기 안되거나 껐다 켜면 또 되고 다른게 또 포트가 안되고 반복하기를...
찾아보니 매번 컴퓨터 켤 때마다 접근이 가능한 포트를 통제를 하고있던 것이였다.
명령 프롬프트를 관리자로 실행해서 다음처럼 확인이 가능하다. (조회만 해볼 것이라면 관리자 실행 안해도 됨)
netsh interface ipv4 show excludedportrange protocol=tcp
위 명령어를 실행하면 프로토콜 tcp 포트 제외 범위 라고 해서 목록이 촤르륵 나오는데 그 중에 에러가 나는 포트가 포함이 안되어있어서 생긴 문제다.
제외 범위를 추가 하는 방법은 다음 명령어를 관리자 실행을 한 뒤에 하면된다.
net stop winnat
net start winnat
먼저 winnat 을 중지하고 다시 시작한다.
그러면 보통 모든 포트가 다 초기화 되어서 그냥 쓸수도 있으나 수동으로 추가하는 방법은 다음처럼 실행하면 된다.
netsh int ipv4 add excludedportrange protocol=tcp startport={사용할 포트} numberofports=1 store=persistent
'DevOps > Docker' 카테고리의 다른 글
docker 용량 확인 및 정리 (0) | 2023.10.12 |
---|---|
Docker Community Edition 및 Docker Compose 설치 (0) | 2023.03.20 |
[Docker] ELK Container Date Change (0) | 2022.08.16 |