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