커뮤니티 솔루션

CasaOS 앱은 포트 5000을 공유합니다: 컨테이너 포트가 아닌 호스트 포트를 변경하세요

A June 2024 CasaOS question about MusicBrainz, HandBrake, and other apps sharing port 5000; a later reply identified changing the host port while preserving the container port.

CasaOS 사용자가 컨테이너 포트 5000을 필요로 하는 웹 애플리케이션을 여러 개 설치했습니다. 여러 컨테이너가 Debian 호스트에서 동일한 포트를 게시하려 했기 때문에 한 앱만 접속할 수 있었습니다. 매핑의 양쪽 포트를 모두 변경하자 일부 애플리케이션이 응답하지 않기 시작했습니다.

작동 원칙은 간단합니다. 애플리케이션 자체의 문서에 수신 포트를 설정할 수 있다고 명시되어 있지 않은 한, 애플리케이션의 컨테이너 포트는 그대로 유지하세요. 호스트 측 포트만 변경하면 됩니다.

Docker 포트 매핑은 왼쪽에서 오른쪽으로 읽습니다

5001:5000

이 매핑에서 5001은 브라우저에서 사용하는 호스트 포트이고, 5000은 컨테이너 내부에서 애플리케이션이 수신 대기하는 포트입니다. Docker의 공식 포트 게시 가이드도 동일한 호스트-컨테이너 모델을 사용합니다.

포트 5000을 사용하는 두 앱을 서로 다른 호스트 포트에 매핑하기

애플리케이션 호스트 포트 컨테이너 포트 브라우저 주소
MusicBrainz 5001 5000 http://SERVER-IP:5001
HandBrake 5002 5000 http://SERVER-IP:5002

각 호스트 IP와 포트 조합은 고유해야 합니다. 컨테이너의 네트워크 네임스페이스는 서로 격리되어 있으므로 여러 컨테이너가 내부에서 계속 5000 포트를 수신 대기할 수 있습니다.

컨테이너 포트를 변경하면 웹 UI가 작동하지 않는 경우가 많은 이유

이미지는 고정된 내부 포트에서 웹 서버를 시작할 수 있습니다. 프로세스가 여전히 5000에서 수신 대기하는데 CasaOS가 호스트 포트 5001을 컨테이너 포트 5001에 매핑하면 Docker는 비어 있는 소켓으로 트래픽을 전달합니다. 브라우저에서 응답을 받지 못하더라도 컨테이너는 정상 상태로 보일 수 있습니다.

상위 애플리케이션에서 프로세스의 수신 포트도 변경하는 설정 또는 환경 변수를 제공한다고 문서화한 경우에만 컨테이너 포트를 변경하세요.

CasaOS에서 올바른 필드를 편집하세요

  1. 앱의 설정 또는 사용자 지정 설치 구성을 엽니다.
  2. 호스트 및 컨테이너 값이 표시된 포트 항목을 찾습니다.
  3. 컨테이너 값은 이미지 기본값으로 유지합니다.
  4. 사용하지 않는 호스트 포트를 선택합니다.
  5. 안내에 따라 저장한 후 컨테이너를 다시 생성하거나 재시작합니다.
  6. 새 호스트 포트를 통해 앱을 엽니다.

새 포트를 할당하기 전에 확인하세요

CasaOS 앱 목록 또는 컨테이너 구성에서 기존 매핑을 확인하세요. Debian에 직접 설치된 서비스도 고려해야 합니다. 이러한 서비스는 CasaOS 앱으로 표시되지 않으면서 동일한 호스트 포트를 사용할 수 있습니다. 기존 서비스를 이해하고 있지 않다면 22, 53, 80, 443, 445와 같은 일반적인 인프라 포트는 할당하지 마세요.

호스트 네트워킹에서는 이러한 유연성이 사라집니다

호스트 네트워크 모드에서는 컨테이너가 호스트의 네트워크 네임스페이스를 공유하므로, 이미 사용 중인 수신 포트를 일반적인 방식으로 다시 매핑할 수 없습니다. Docker의 호스트 네트워크 문서에서도 특정 호스트 포트에 하나의 서비스만 바인딩할 수 있다고 설명합니다.

CasaOS 포트 충돌 FAQ

어떤 숫자를 변경해야 하나요?

HOST:CONTAINER에서 첫 번째 숫자인 호스트 포트를 변경하세요.

모든 앱이 컨테이너 포트 5000을 사용할 수 있나요?

각 컨테이너가 격리되어 있고 서로 다른 호스트 포트를 게시한다면 가능합니다.

앱은 설치되었는데 왜 열리지 않나요?

매핑이 애플리케이션이 수신 대기하지 않는 컨테이너 포트를 가리키고 있을 수 있습니다.