Engineering Note

[Error Handling] 도커 포트 포워딩 오류 해결 본문

Error Handling

[Error Handling] 도커 포트 포워딩 오류 해결

Software Engineer Kim 2025. 7. 1. 07:48

상황

도커 컨테이너를 호스트 컴퓨터의 포트로 포워딩해서 실행하려고 할 때 아래 같은 오류 발생

실행 명령어 및 에러메세지

 

실행 명령어
docker container run --detach --publish 8080:80 diamol/ch02-hello-diamol-web 

에러 메세지
docker: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:8080 -> 0.0.0.0:0: listen tcp 0.0.0.0:8080: bind: address already in use.

 

에러 메세지 해석 및 분석

도커 컨테이너의 80포트를 호스트 컴퓨터 8080에 포워딩하려고하는데 8080포트가 이미 사용중이라는 에러메시지이다.


해결 과정
문제를 해결하기 위해서 현재 사용 중인 8080 포트를 프로세스를 확인을 했다.

lsof -i :8080

출력 결과

COMMAND     PID     NAME
java        12487   *:http-alt (LISTEN)
java        12487   localhost:http-alt->localhost:57054 (ESTABLISHED)
java        12487   localhost:http-alt->localhost:57055 (ESTABLISHED)
Google      16322   localhost:57054->localhost:http-alt (ESTABLISHED)
Google      16322   localhost:57055->localhost:http-alt (ESTABLISHED)



12487이라는 process id를 가진걸 확인했고, ps aux | grep 55545를 통해 프로세스 정보를 확인하니까 이전에 인텔리제이로 실행한적 있는 프로젝트가 인텔리제이 종료했는데도 프로세스가 살아있는걸 확인할 수 있었다.
com.summarizer.backend_springboot.BackendSpringbootApplication


kill -9 12487 를 통해 프로세스를 종료해서 해결했다.

Comments