본문 바로가기
Technology/Docker

[Docker] - 도커(Docker) port 충돌 해결 방법

by nam_ji 2025. 3. 12.

도커(Docker) 강제 종료로 인한 Port 충돌 해결 방법

1️⃣ 현재 사용 중인 포트 확인하기

🔍 Docker Compose에서 사용하는 포트 목록

  • 아래 명령어로 현재 사용 중인 포트 리스트를 확인합니다. (아래 명령어 중에서 아무거나 선택해서 사용하시면 됩니다.)
sudo netstat -tulnp | grep LISTEN
sudo lsof -i -P -n | grep LISTEN
  • 출력 예시
docker-pr 12345 root    4u  IPv4 5473531      0t0  TCP *:1234 (LISTEN)
docker-pr 15468 root    4u  IPv6 5473536      0t0  TCP *:1234 (LISTEN)
  • 위 예시처럼 1234 포트가 점유됨을 확인할 수 있습니다.

🔍 특정 포트 확인 명령어

  • 포트별 프로세스 ID (PID)를 찾으려면
sudo lsof -i :<포트번호>
  • 예제
sudo lsof -i :1234
  • 출력 예시
COMMAND       PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
docker-pr 12345 root    4u  IPv4 5473531      0t0  TCP *:1234 (LISTEN)
  • 위 예제처럼 PID가 12345인 프로세스가 1234 포트를 점유하고 있습니다.

2️⃣ 점유된 포트의 프로세스 종료

📌 특정 PID 종료하기

  • 위 예제 PID를 종료하려면
sudo kill -9 12345
  • 또는 한 번에 여러 개의 PID를 종료하려면 (띄어쓰기로 이어서 입력하시면 됩니다.)

📌 모든 점유된 포트 한 번에 종료

  • 띄어쓰기로 PID를 이어서 입력하는 방법
sudo kill -9 12345 56789
  • 또는 특정 포트들을 찾고 해당 PID를 종료하는 명령어
sudo lsof -t -i :1234 -i :5678 | xargs -r sudo kill -9

3️⃣ 실행 중인 Docker 컨테이너 정리 (필요 시)

📌 모든 실행 중인 컨테이너 종료

  • Docker가 실행 중이라면 모든 컨테이너를 종료 후 삭제해야 합니다.
  • 모든 실행 중인 컨테이너 종료는
sudo docker ps -q | xargs -r sudo docker stop

📌 모든 컨테이너 삭제

  • 모든 Docker의 실행을 종료했다면 이제 모든 컨테이너를 삭제합니다.
  • 모든 컨테이너 삭제는
sudo docker ps -q | xargs -r sudo docker stop

📌 Docker 서비스 완전히 중지

  • 위 명령어를 입력하여 모든 컨테이너를 종료하고 삭제했습니다. 이제 도커 시스템을 종료하는 명령어로 Docker를 깔끔하게 정리하도록 합니다.
sudo systemctl stop docker
sudo systemctl stop docker.socket

4️⃣ Docker 다시 시작 및 Compose 실행 (3번 실행했을 경우)

📌 Docker 서비스 시작

  • 아래 명령어를 통해 도커 시스템을 시작
sudo systemctl start docker
  • 아래 명령어를 통해 도커 시스템이 시작되었는지 확인
sudo systemctl status docker

📌 Docker Compose 실행

  • 포트가 정상적으로 해제되었는지 확인한 후 Docker compose를 실행 (도커 버전 1 명령어)
sudo docker-compose up -d
  • 포트가 정상적으로 해제되었는지 확인한 후 Docker compose를 실행 (도커 버전 2 명령어)
sudo docker compose up -d

✅ 마무리

이제 Docker Compose가 정상적으로 실행되었을 것입니다.
다음과 같은 과정을 통해 포트 충돌 없이 Docker를 다시 실행할 수 있습니다.

  1. 현재 사용 중인 포트 확인하기
  2. 점유된 포트의 프로세스 종료
  3. 실행 중인 Docker 컨테이너 정리 (필요 시)
  4. Docker 다시 시작 및 Compose 실행 (3번 실행했을 경우)