본문 바로가기

직접 만든 소프트웨어, 두 가지 개발 기록

구현 구조와 적용 범위, 확인한 기능과 남은 한계를 함께 기록합니다.

소프트웨어개발

Compose 재생성 후 접속 포트가 바뀔 때: 동적 호스트 포트 확인

by 아빠띠띠뽀 2026. 10. 28.

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 재생성 후 접속 포트가 바뀔 때: 동적 호스트 포트 확인

Compose 고정 호스트 포트 충돌 점검

 

Docker port is already allocated 해결: Compose 호스트 포트 충돌 점검

Docker 시작 과정의 port is already allocated는 먼저 오류에 표시된 호스트 포트를 누가 사용하는지 확인해야 합니다. 컨테이너 안의 앱 포트를 무작정 바꾸거나 서버를 재부팅하기 전에 Docker 컨테이너

papa-titipo.com

서비스 내부 포트와 호스트 연결 지점을 나눈 개념 그림
직접 생성한 개념 이미지입니다. 실제 서비스 화면이나 구축·성능 시험 결과가 아닙니다.