Project/토이 프로젝트

[Docker] docker mysql 포트 충돌 에러 (feat. 3306)

Lea Hwang 2023. 3. 9. 20:25

도커 컨테이너 생성3306 포트는 이미 사용 중이라 정상적으로 생성되지 못하고 에러가 발생했습니다. 

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/networ
k address/port) is normally permitted.

 

 

 

cmd를 이용해 어떤 프로세스가 3306을 사용 중인지 확인해 보겠습니다.

netstat -ano | findstr :3306

TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING       5664

TCP    0.0.0.0:33060          0.0.0.0:0              LISTENING       5664
TCP    [::]:3306              [::]:0                 LISTENING       5664
TCP    [::]:33060             [::]:0                 LISTENING       5664

 

 

이를 통해 PID 5664 프로세스가 현재 3306을 사용 중이라는 것을 알 수 있습니다.

 

 

 

여기서 해결할 수 있는 방법은 두 가지인데

1. 해당 PID를 kill 하거나

  • taskkill /F /PID 5664

2. 사용하지 않는 포트를 호스트 포트로 사용하는 것입니다.

 

저는 3307 포트를 호스트 포트로 지정한 후 다시 해당 명령어를 실행했을 때 성공했습니다.

docker-compose -f docker-compose-local.yml up

 

 

 

 

+ 해당 컨테이너가 정상적으로 실행이 되었는지 cmd창을 통해 최종 확인해 볼 수도 있습니다.

docker ps