[에러] docker: Error response from daemon: 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: Only one usage of each socket address (protocol/network address/port) is normally permitted.

2024. 4. 4. 10:34에러 창고

728x90
SMALL

[Reason]

docker를 설치하고 docker에 mysql을 설치 후, 3306포트에 연결하여 실행하고자 할 때 발생되는 에러이다.

이는 해당 3306 포트에 다른 서비스가 실행되고 있어 mysql을 해당 포트에 연결하여 실행할 수 없다는 의미이다.

 

 

[Solution]

(1) 이전 서비스 종료 후 실행

netstat -ano | findstr {포트 번호} 명령어를 통해 해당 포트를 사용하고 있는 서비스의 pid를 확인해준다.

 

taskkill /pid {포트 번호} /f  명령어를 통해 해당 포트에서 실행 중인 서비스의 pid를 통해 서비스를 종료해주고 다시

docker run -e mysql_root_password={비밀번호} -d -p 3306:3306 mysql:8 명령어를 실행하여 실행해준다.

 

 

(2) 다른 포트 사용

netstat -ano 명령어를 통해 사용하고자 하는 포트 번호가 사용 중인지 확인해준다.

나는 3307 포트를 사용할 것이기 때문에 위의 이미지처럼 사용하고 있는 서비스는 존재하지 않는다는 것을 확인했다.

 

 

docker run -e mysql_root_password={비밀번호} -d -p 3307:3306 mysql:8 명령어를 통해 3307포트와 docker의 3306포트를 연결하여 mysql을 실행해주면 된다.

728x90
반응형
LIST