Error starting userland proxy: listen tcp 0.0.0.0:XXXX: bind: address already in use (포트 중복으로 인한 에러)
-
반응형
도커 이미지 다운로드시 가끔 포트가 겹쳐 에러가 나타나는 경우가 있다.
에러코드
Error starting userland proxy: listen tcp 0.0.0.0:XXXX: bind: address already in use
이럴 경우 이미 다른 소프트웨어(예: 리액트, 앵귤러, mysql 등등) 이미 설치하여 이미 포트를 사용하고 있는 경우다. 이럴 경우 먼저 포트를 사용하고 있는지 확인하고 해당 포트를 삭제하거나 혹은 포트를 변경하면 된다. (개인적으로 삭제 kill 은 임시적인 방편이라 사용중이 프로그램 포트를 변경하였다)
현재 맥북을 사용하고 있으며, netstast 혹은 lsof 명령어로 포트를 확인한다. 터미널(리눅스=맥)에서 아래의 코드와 같이 쓰면 현재 내가 사용하고 있는 포트틀 확인할 수 있다. 필자는 참고로 5432 포트 에러가 떴다.
사용중인 포트 확인하기
$ netstat -anv | grep LISTEN
$ sudo lsof -i :XXXX
$ sudo lsof -i tcp:XXXX
(둘 중 하나 입력)
필자의 경우 postgresql이라는 프로그램이 :5432 포트를 쓰고 있었다. 이럴 경우 이미설치하였던 도커 이미지들을 삭제한다.(필자는 여러 컨테이너를 설치하고 에러 나서 다시 지우려고 하기때문에 모든 컨테이너를 삭제를 할 예정이라서 모든 컨테이너를 지울 경우에만 꼭 아래 명령어를 치기를 권장한다)
docker-compose down docker rm -fv $(docker ps -aq)위의 코드를 치면 현재 생성된 컨테이너를 모두 삭제가 된다. 그런 다음 port kill 하는 방법은kill - 9 "PID"중요한 것은 PID의 경우 sudo lsof -i 명령어를 치면 PID 번호가 나오는데, 위 이미지에서는 136라고 나오는데 포트가 아닌 PID 번호인점을 잊지말자. 개인적으로는 kill 은 그 포트가 삭제가 아니라 잠시 정지? 시키는 개념이기 때문에 해당 프로그램 기본(Default) 번호를 변경하였다.