Docker

[Docker Error] Bind for 0.0.0.0:8080 failed: port is already allocated

patrick-star 2023. 5. 4. 08:55
728x90

도커 컨테이너를 시작(docker start / docker restart) 할 때 마다 항상 마주한 문제였다.

문제의 이유는 해석 그대로다. 내가 사용하려는 포트가 이미 할당되어 있다는 것

이전에는 이미 사용하고 있던 포트들을 일일이 kill 하는 방식으로 문제를 해결했었지만
그때만 해결될 뿐 다음날 또 도커 컨테이너를 시작할 때 똑같은 문제가 발생해서 항상 귀찮았다.

다행히 좀 더 근본적인 문제의 원인과 해결책을 정리해놓은 사이트를 찾았다. 생각해보면 당연한 얘기였다.

문제의 원인

이미 host machine에서 사용하고 있던 포트를 컨테이너에서 사용하려고 할 때 발생하는 문제

예를 들면, 이미 다른 컨테이너가 8080 포트를 사용하고 있기 때문에 새로 시작하려는 컨테이너가 8080 포트를 사용하지 못한다는 뜻

해결

1) 해당 포트를 사용하고 있는 컨테이너의 동작을 멈춘다.

2) 이미 동작하고 있는 컨테이너의 동작을 멈출 수 없다면 내가 사용하려고 하는 컨테이너의 포트번호 매핑을 변경해줘야 한다.

  • 출처

https://www.baeldung.com/linux/docker-address-already-in-use