23-08-22 TIL

more·2023년 8월 22일
0

문제

  • '재고 시스템으로 알아보는 동시성이슈 해결방법' 이라는 인프런 강의를 듣는 중
    • 초반 docker 셋팅에서 문제가 발생
    • 해당 에러 메시지는 아래와 같음
    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.
    • 아마도 포트의 문제가 아닐까 싶은데, 확인을 해보고 해결 방법을 생각해보자

시도

  • docker 셋팅
    • 도커 컨테이너를 생성하려고 하는 도중에 벌어진 문제이기 때문에 생성 자체에 문제가 있는지 점검
    • 일단 생성은 제대로 되었음을 알 수 있음
      -> 그렇다면 생성은 되는데 실행은 안되는 걸로
    • 에러 메시지를 보니 Ports are not available 이라고 되어있다.
    • port number가 3306이면 mysql이기 때문에, 여태 프로젝트를 mysql로 진행하여서 그 부분 포트가 아직도 할당 되어 있나? 라는 생각이 들었음

해결

  • docker 셋팅
    • cmd에 netstat -ano | findstr 3306 이 명령어를 사용해서 3306 포트를 사용하고 있는지 확인
      -> 사용하고 있음이 확인되었음
    • 맨 뒤에 PID가 5080 으로 되어있었기 때문에, tasklist | findstr 5080 이 명령어를 통해서 PID가 5080인 프로세스가 무엇인지 확인
      -> 로컬에 설치된 mysql이 해당 포트를 점유하고 있는 것으로 보임 (기존 프로젝트)
    • 해당 프로세스를 종료하고 3306을 연결해보자
      -> 종료가 안됨 (이 이유는 아직 잘 모르겠음)
    • 포트를 다른 것으로 연결시켜보자
      -> netstat -ano | findstr :3307 해당 명령어를 통해서 3307 포트를 누가 사용하고 있는지 확인
      -> 비어있음
      -> 해당 포트로 docker의 mysql 연결
      -> 해결
profile
조금 더

0개의 댓글