2016-09-17 4 views
0

Docker 내장 환경을 사용하여 응용 프로그램을 개발하는 데 익숙해졌습니다.프로덕션 환경에서 Docker로 점차적으로 마이그레이션합니다.

저는 (로컬로 설치된) 여러 개의 웹 응용 프로그램을 Apache에 제공하고있는 실제 서버가 있습니다.

Apache listening on 80 
    sites-available 
     app1 -> locally installed in /apps/app1 
     app2 -> locally installed in /apps/app2 
     ... 

이제 Docker로 전체 응용 프로그램 환경을 준비했습니다. 로컬에 설치된 응용 프로그램 옆에있는 기존의 좋은 서버에 연결하고 싶습니다.

Apache listening on 80 
    sites-available 
     app1 -> locally installed in /apps/app1 
     app2 -> locally installed in /apps/app2 
     app3 -> proxy to the related Docker service 
     ... 

그리고 다른 기존 응용 프로그램을 점진적으로 고정시킵니다.

주요 질문은 다음과 같습니다.
매번 전용 포트에 도킹 서비스를 노출해야합니까?

동일한 기계에서 실행되는 여러 서비스를 마침내 프록시 할 때 사용할 수있는 네트워킹 기술이 있습니까?

또한 일부 Apache 프록시 예제를 가르쳐 주시겠습니까?

결국 전용 프록시가있을 때 Nginx를 켜십시오.

답변

1

Docker에서 특정 컨테이너를 노출하는 기본 방법은 전용 포트입니다. 특히 동일한 시스템에서 실행 중일 때 컨테이너에 직접 연결할 수있는 방법이 있지만 컨테이너가 재구성되면 컨테이너의 현재 IP를 추적하는 것이 좋습니다.

시나리오에 따르면 컨테이너에 두 번째 프록시를 배치하는 것이 좋습니다. 컨테이너로 실행 중이므로 다른 컨테이너 각각에 이름으로 연결할 수 있습니다. 개인적으로 가장 좋아하는 구현은 nginx-proxy입니다.이 컨테이너는 컨테이너의 시작과 중단을 감지하여 해당 구성을 자동으로 업데이트합니다.

그런 다음 컨테이너로 이전을 마치면 기존 Apache 프록시 프로세스를 끄면 nginx 프록시에 다른 수신 대기 포트를 추가 할 수 있습니다.

+0

이것은 흥미 롭습니다. 나는 내가 주로 무엇을 찾고 있는지 생각한다. –

관련 문제