NCache 도커 포트 포워딩
Docker 포트 전달 또는 포트 매핑은 하나의 IP 주소와 포트 번호 조합에서 다른 IP 주소와 포트 번호 조합으로 통신 요청을 리디렉션합니다. 포트 전달은 호스트 내부 네트워크 외부의 애플리케이션에 서비스를 노출합니다.
여기서 포트 포워딩은 remote client 연결하는 응용 프로그램 NCache Docker 컨테이너 내에서 실행되는 서버(내부 Docker 네트워크).
Docker 포트 전달 구성
이 몇 가지 시나리오 접근할 수 없는 곳에 NCache Docker 컨테이너 내에서 직접 실행되는 서버. 지도를 작성해야 합니다 NCache 포트 접근성을 위해 컨테이너에서 호스트 머신 네트워크로. 또한 클라이언트 애플리케이션에 대해 이러한 포트를 구성해야 합니다. 두 가지 구성에 대한 설명은 다음과 같습니다.
컨테이너에서 포트 전달 구성
docker 포트 전달을 진행하기 전에 다음을 할당해야 합니다. NCache 컨테이너 고정 IP 주소. NCache 서버는 서로 통신하기 위해 고정 IP 주소가 필요합니다. NCache 클라이언트. 또한, NCache 서버에 액세스할 수 없습니다. NCache 동일한 네트워크 또는 서브넷에 둘 다 존재하지 않는 경우 클라이언트.
1단계: 사용자 지정 Docker 네트워크 생성
기본적으로 Docker는 컨테이너에 동적 IP 주소를 할당합니다. 따라서 컨테이너를 다시 시작해야 하거나 호스트 시스템이 다시 시작되면 컨테이너의 IP 주소가 변경될 수 있습니다. 컨테이너 고정 IP 주소를 할당하려면 사용자 지정 Docker 네트워크가 필요합니다..
다음 명령은 다음이라는 사용자 지정 Docker 네트워크를 만듭니다. nbrg 서브넷 및 게이트웨이가 정의된 경우:
docker network create --subnet=172.19.0.0/16 --gateway=172.19.0.1 nbrg
2 단계 : 생성 NCache 컨테이너 및 지도 NCache 포트
사용자 지정 Docker 네트워크 생성이 발생하면 다음을 할당할 수 있습니다. NCache 컨테이너 고정 IP 주소 및 맵 NCache 포트 접근성을 위해 컨테이너에서 호스트로
다음 명령은 두 개의 NCache 명명된 Docker 컨테이너 ncache-ent-서버-01 및 ncache-ent-서버-02. 사용자 지정 Docker 네트워크를 사용하여 두 개의 컨테이너에 고정 IP 주소가 할당됩니다. nbrg 마지막 단계에서 생성하세요. 그만큼 NCache 컨테이너에서 호스트로 통신 포트 매핑 도커 -p 스위치:
docker run --name ncache-ent-server-01 --net nbrg --ip 172.19.0.11 -p 1250-1260:8250-8260 -p 1300-1400:8300-8400 -p 9801:9800 -itd alachisoft/ncache:latest-java
docker run --name ncache-ent-server-02 --net nbrg --ip 172.19.0.12 -p 2250-2260:8250-8260 -p 2300-2400:8300-8400 -p 9802:9800 -itd alachisoft/ncache:latest-java
클라이언트 애플리케이션에 대한 Docker 포트 전달 구성
컨테이너에서 호스트로 포트를 매핑한 후에는 해당 변경 사항을 클라이언트 애플리케이션에도 반영해야 합니다. 그만큼 클라이언트.ncconf 파일은 클라이언트 애플리케이션을 사용하여 NCache 서버. 이 파일에서 포트와 IP 주소를 매핑해야 합니다.
다음 인 클라이언트.ncconf 포트가 컨테이너와 매핑되는 파일 구성(NCache 서버) ncache-ent-서버-01 및 ncache-ent-서버-02, 이전에 생성되었으며 공용 IP 주소에서 호스팅됨 20.200.20.212
:
<configuration>
<ncache-server connection-retries="1" retry-connection-delay="0" retry-interval="1" command-retries="3" command-retry-interval="0.1" client-request-timeout="90" connection-timeout="5" port="9800"/>
<cache id="demoCache" client-cache-id="" client-cache-syncmode="optimistic" skip-client-cache-if-unavailable="True" reconnect-client-cache-interval="10" default-readthru-provider="" default-writethru-provider="" load-balance="True" enable-client-logs="False" log-level="error">
<server name="172.19.0.11"/>
<server name="172.19.0.12"/>
</cache>
<server-end-point>
<end-point public-ip="20.200.20.212" public-ports="9801" private-ip="172.19.0.11" private-ports="9800"/>
<end-point public-ip="20.200.20.212" public-ports="1250-1260" private-ip="172.19.0.11" private-ports="8250-8260"/>
<end-point public-ip="20.200.20.212" public-ports="1300-1400" private-ip="172.19.0.11" private-ports="8300-8400"/>
<end-point public-ip="20.200.20.212" public-ports="9802" private-ip="172.19.0.12" private-ports="9800"/>
<end-point public-ip="20.200.20.212" public-ports="2250-2260" private-ip="172.19.0.12" private-ports="8250-8260"/>
<end-point public-ip="20.200.20.212" public-ports="2300-2400" private-ip="172.19.0.12" private-ports="8300-8400"/>
</server-end-point>
</configuration>