Exception
[Docker] 포트가 사용중인 경우 해결방법
헤르메스의날개
2023. 7. 25. 23:49
728x90
Docker 에 Oracle XE 를 설치 하였습니다. 평소에는 사용할 일이 없지만, 테스트용으로 간간이 사용합니다.
이번에도 테스트를 위해 Oracle Docker 서버를 시작했는데, 아래와 같은 오류가 발생했습니다.
Error invoking remote method 'docker-start-container':
Error: (HTTP code 500) server error - Ports are not available: exposing port TCP 0.0.0.0:1521 -> 0.0.0.0:0: listen tcp 0.0.0.0:1521:
bind: An attempt was made to access a socket in a way forbidden by its access permissions.
대략봐도 포트번호를 누군가가 사용하고 있다는 메시지로 보여집니다.
보통의 경우 사용되는 경우가 대부분이긴 합니다.
이 경우는 아래와 같은 구문으로 찾을 수 있습니다.
$ netstat -ano | findstr ":3306"
그런데, 실제 포트가 사용되지 않는데도 포트를 사용할 수 없다고 오류가 발생하는 경우가 있습니다.
이럴 때는 시스템에서 사용자가 쓰지 못하도록 점유되어 경우입니다.
powershell 을 관리자로 실행 해서 아래와 같이 실행합니다.
PS C:\> netsh interface ipv4 show excludedportrange protocol=tcp
프로토콜 tcp 포트 제외 범위
시작 포트 끝 포트
---------- --------
1053 1152
1196 1295
1296 1395
1396 1495
1496 1595
1596 1695
1712 1811
2869 2869
8708 8807
27339 27339
50000 50059 *
* - 관리 포트 제외입니다.
* 표시는 점유되어 있지 않다는 표시 입니다.
점유되지 않는 포트로 할당을 하고 싶은 경우 아래와 같이 실행하면 됩니다.
PS C:\> netsh int ipv4 delete excludedportrange protocol=tcp startport=1496 numberofports=100
액세스가 거부되었습니다.
안되는 경우 아래와 같이 하면 됩니다. ( 점유된 포트를 전부 초기화 해버립니다. ㅎㅎ )
PS C:\> net stop winnat
Windows NAT Driver 서비스를 잘 멈추었습니다.
PS C:\> net start winnat
Windows NAT Driver 서비스가 잘 시작되었습니다.
PS C:\> netsh interface ipv4 show excludedportrange protocol=tcp
프로토콜 tcp 포트 제외 범위
시작 포트 끝 포트
---------- --------
2869 2869
27339 27339
50000 50059 *
* - 관리 포트 제외입니다.
그리고 이제 원하는 포트를 예외 처리합니다.
-- oracle port
netsh int ipv4 add excludedportrange protocol=tcp startport=1521 numberofports=1 store=persistent
-- postgress port
netsh int ipv4 add excludedportrange protocol=tcp startport=5432 numberofports=1 store=persistent
-- mysql/maria port
netsh int ipv4 add excludedportrange protocol=tcp startport=3306 numberofports=1 store=persistent
결과는 아래와 같습니다. 전부 예외 처리되었습니다.
PS C:\> netsh interface ipv4 show excludedportrange protocol=tcp
프로토콜 tcp 포트 제외 범위
시작 포트 끝 포트
---------- --------
1521 1521 *
2869 2869
3306 3306 *
5432 5432 *
27339 27339
50000 50059 *
* - 관리 포트 제외입니다.
Oracle 이 실행되었습니다.
https://hermeslog.tistory.com/713
728x90