새소식

반응형
Docker/ERROR LOG

Docker Error bind: address already in use

  • -
반응형

"Docker Error bind: address already in use" 오류는 Docker 컨테이너나 Docker 서비스에서 특정한 포트를 사용하려고 할 때, 해당 포트가 이미 다른 프로세스에 의해 사용 중일 때 발생합니다.

docker

 

이 오류는 주로 다음과 같은 상황에서 발생할 수 있습니다:

  1. 포트 충돌:
    • Docker 컨테이너나 서비스가 호스트의 특정 포트를 사용하려고 할 때, 해당 포트가 다른 프로세스에 이미 사용 중인 경우 충돌이 발생합니다.
  2. 이전에 실행 중이던 컨테이너나 서비스가 종료되지 않은 경우:
    • 이전에 실행 중이던 Docker 컨테이너나 서비스가 종료되지 않고 남아 있는 경우 해당 포트를 계속 사용 중일 수 있습니다.
  3. 포트를 제대로 해제하지 않은 경우:
    • 이전에 사용 중이었던 프로세스가 해당 포트를 제대로 해제하지 않은 경우에도 발생할 수 있습니다.
반응형

해결방법

docker stop $(docker ps -a -q) # Stop all containers
docker rm -fv $(docker ps -aq)  # Remove all containers
sudo lsof -i -P -n | grep <port number>  # List who's using the port
  1. docker stop $(docker ps -a -q) :
    • docker ps -a: 모든 Docker 컨테이너 목록을 표시합니다.
    • docker ps -a -q: 모든 컨테이너의 ID만 표시합니다.
    • docker stop $(docker ps -a -q): 모든 컨테이너를 중지합니다. -q 옵션은 컨테이너 ID만 출력하도록 하는데, 이를 docker stop 명령에 전달하여 모든 컨테이너를 중지합니다.
  2. docker rm -fv $(docker ps -aq) :
    • docker rm: Docker 컨테이너를 제거합니다.
    • -fv: 옵션은 강제로(force) 및 볼륨을 함께 제거하는 것을 의미합니다.
    • docker ps -aq: 모든 컨테이너의 ID를 표시합니다.
    • docker rm -fv $(docker ps -aq): 모든 컨테이너를 강제로 제거합니다. -q 옵션은 컨테이너 ID만 출력하도록 하는데, 이를 docker rm 명령에 전달하여 모든 컨테이너를 제거합니다.
  3. sudo lsof -i -P -n | grep <port number> :
    • sudo lsof: 열려 있는 파일을 나열하는 명령입니다.
    • -i: 네트워크 연결을 보여줍니다.
    • -P: 포트 번호를 보여줍니다.
    • -n: 호스트 이름을 숫자로 표시합니다(릴레이블 이름을 검색하지 않음).
    • grep <port number>: 특정 포트 번호를 사용 중인 프로세스를 검색합니다.
    • sudo lsof -i -P -n | grep <port number>: 특정 포트 번호를 사용 중인 프로세스를 확인합니다.
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.