2014-11-14 3 views
3

당신의 도커 이미지 안에 nginx가 있는지 없는지에 대한 장단점에 대해 궁금합니다. 도저에 nginx를 설치하는 방법에 대한 자습서가 많이 있지만, 내가 물어 보는 것은 너이거나하지 말아야한다는 것이다.nginx를 docker에 설치해야합니까?

docker 호스트에 nginx를 설치하고 실행중인 개별 컨테이너 (무지개 등을 실행할 수 있음)를 가리켜 야합니까? 또는

용기 안에 다른 nginx 층을 설치해야합니까?

도커 컨테이너 안에 또 다른 nginx를 가지고있는 것의 이점이 보이지 않지만 그 다음에는 상식이있는 것처럼 많은 튜토리얼이 왜 있는지 궁금합니다. 나는 상식을 얻지 못해 좌절감을 느낍니다. 나를.

편집 :

컨테이너 당 구성이 적을수록 좋습니다. nginx 컨테이너와 그 뒤에있는 앱 컨테이너 사이에 꽉 끼는 커플 링이 있다면, 확실히 내가 찾고있는 솔루션이 아니며, 컨테이너를 첫 번째 위치에 두는 목적을 이깁니다. 이것이 Docker 호스트에 nginx가 설치되는 방향으로 향하고있는 이유입니다.

우리가 nginx 컨테이너를 가지고 있다면 컨테이너는 어플리케이션과 독립적이어야합니다. docker run을 실행할 때 사용자 지정이 가능하지 않으면 포트 번호 및 IP 주소, 작업자 프로세스 수와 같은 응용 프로그램 별 구성 (client_max_body_size)을 컨테이너에 구성하지 않아야합니다.

+0

nginx (아래 @PeterLyons에서 설명한 옵션 참조)를 넣으려는 컨테이너에 대해 논쟁의 여지가 있지만 확실히 호스트가 아닌 컨테이너에 넣으려고합니다. 그렇게하면, 전체 nginx 설정 (모든 포트 번호와 경로 등)을 가진 좋은 패키지를 얻을 수 있습니다. – Thilo

+0

당신이 소중히 여기는 것을 제안하십시오 (유연성이 적고 움직이는 부품이 적습니까?). 그러면 사람들은 그 교환에 대해 조언 할 수있는 기회를 갖게됩니다. 그것이 그대로, 당신은 주제 밖의 순수한 의견을 요구하고 있습니다. – Bryan

+0

@ 브라이언 : 완료. 내가 찾고있는 정보를 더 추가했습니다. – garbagecollector

답변

2

이것은 의견을 바탕으로 결론을 내릴 수 있지만, 내 생각에 도커는 전송 계층 (TCP/UDP)까지 네트워킹에 참여해야하지만 더 높지는 않습니다 (HTTP). 따라서 나는 아니오 당신은 도커 호스트에 직접 리버스 프록시로 nginx를 설치해서는 안되며 nginx가 제공하는 기능을 원한다면 컨테이너 내에 nginx를 설치해야합니다.

각 애플리케이션 앞에 nginx 컨테이너가 필요하다고 결정할 수 있습니다. (이것은 컨테이너 화 및 분리 및 사물 공유가 아닌 전반적인 아이디어와 가장 잘 어울립니다) 또는 호스팅되는 여러 앱을 리버스 프록시 할 수있는 nginx 컨테이너 동일한 호스트에있는 컨테이너 (전체적으로 간단하지만 더 단단히 결합되고 조준선의 철학과 조화되지 않을 수 있음) 당신은 또한 phusion 스타일을 취할 수 있고 응용 프로그램과 nginx를 동일한 컨테이너에 둘 수 있습니다. 이는 일관된 단위를 제공하지만 그렇지 않으면 컨테이너 당 하나의 프로세스 트리에 대한 일반적인 경우에 위배됩니다.

+0

nginx 컨테이너가있는 경우 서로 대화 할 수 있도록 nginx 컨테이너와 app 컨테이너 사이에 링크를 설정해야합니다. 따라서 먼저 미리 정의 된 이름으로 앱 컨테이너를 부팅 한 다음 해당 이름으로 사전 구성된 nginx 컨테이너를 부팅해야합니다. 네, 맞습니다. 더 밀접하게 결합되었습니다. 이러한 구성의 이점은 Docker 호스트가 더 이상 웹 서버를 설치할 필요가 없다는 것입니다. – garbagecollector

관련 문제