Compose에서 호스트 포트를 고정하지 않았다면 컨테이너를 재생성한 뒤 접속 포트가 달라질 수 있습니다. 이전 즐겨찾기 주소를 계속 쓰기 전에 docker compose port로 현재 서비스의 실제 매핑을 확인하세요.
적용 환경: Docker Compose V2의 일반 bridge 네트워크와 동적 포트 매핑; host 네트워크·Swarm 제외. 자료 확인일: 2026-10-27. 문서 기반 안내이며 실제 운영 시험 결과가 아닙니다.
1. 원인: 내부 포트와 외부 포트는 다름
컨테이너 내부에서 듣는 포트와 호스트에서 접속하는 포트는 서로 다를 수 있습니다. Compose의 ports에 컨테이너 포트만 지정한 구성은 호스트 포트를 자동 할당할 수 있습니다.
서비스가 실행 중이라는 표시만으로 이전 주소가 유효하다고 판단하지 않습니다. 포트 충돌 오류가 난 상황과 정상 실행됐지만 접속 주소가 바뀐 상황을 구분합니다.
2. 해결: 같은 프로젝트에서 매핑 조회
실제 Compose 파일을 사용하는 디렉터리에서 실행합니다. web과 80은 실제 서비스 이름과 컨테이너 내부 포트로 바꾸세요. 기존 배포에서 -f나 -p를 사용했다면 동일한 선택 조건을 유지해야 합니다.
docker compose ps
docker compose port web 80
| 확인 항목 | 이유 |
| 프로젝트 | 다른 환경의 컨테이너 혼동 방지 |
| 내부 포트 | 호스트 포트를 인자로 넣지 않기 |
| 프로토콜 | 기본 TCP와 UDP 구분 |
| 복제본 | 여러 인스턴스의 매핑 구분 |
여러 복제본이면 --index 옵션을, UDP 매핑이면 --protocol=udp 옵션을 실제 구성에 맞게 확인합니다. 이 조회 자체가 포트를 새로 열거나 서비스를 재시작하지는 않습니다.
3. 확인: 반환된 주소를 해석
출력의 바인딩 주소와 포트를 기록하고 승인된 위치에서 애플리케이션 응답을 확인합니다. 0.0.0.0은 모든 인터페이스 바인딩을 나타내므로 그대로 사용자 접속 주소로 복사하지 말고 접근 가능한 실제 호스트를 사용하세요.
매핑이 보인다는 것만으로 인증·방화벽·애플리케이션 상태가 모두 정상인 것은 아닙니다. 현재 매핑에서도 실패하면 요청 시각과 앱 로그를 함께 대조합니다.
4. 주의와 FAQ
항상 같은 포트가 필요하면요? 고정 매핑을 검토할 수 있지만 충돌과 노출 범위를 확인해야 합니다. 운영 설정을 즉시 바꾸거나 전체 인터페이스에 새 포트를 여는 것은 이 조회 절차에 포함하지 않습니다.
컨테이너끼리도 호스트 포트를 쓰나요? 같은 Compose 네트워크의 서비스 간 통신은 일반적으로 서비스 이름과 컨테이너 포트를 사용합니다. 외부 접속과 내부 연결의 주소를 섞지 마세요.
공식 출처와 관련 글
공식 문서: Compose 재생성 후 접속 포트가 바뀔 때: 동적 호스트 포트 확인
공식 문서: Compose 재생성 후 접속 포트가 바뀔 때: 동적 호스트 포트 확인
Docker port is already allocated 해결: Compose 호스트 포트 충돌 점검
Docker 시작 과정의 port is already allocated는 먼저 오류에 표시된 호스트 포트를 누가 사용하는지 확인해야 합니다. 컨테이너 안의 앱 포트를 무작정 바꾸거나 서버를 재부팅하기 전에 Docker 컨테이너
papa-titipo.com

'소프트웨어개발' 카테고리의 다른 글
| Git 브랜치가 다른 worktree에서 사용 중일 때: 강제 전환 전 확인 순서 (0) | 2026.10.28 |
|---|---|
| RDS를 삭제했는데 비용이 남을 때: 수동 스냅샷과 보존 백업 점검 (0) | 2026.10.28 |
| AWS Budgets 알림이 늦을 때: 예산 한도와 실제 사용 중단을 구분하기 (0) | 2026.10.28 |