2016-07-27 5 views
6

nodejs에 쓰여지는 3 대의 고속 서버가 있습니다. 이 서버는 다른 용도로 사용되므로 다른 포트에서 실행됩니다.도커 이미지에서 여러 서버 실행

는 예 : 8000, 5000에 app2.js와 나는 고정 표시기 파일을 사용하여 고정 표시기 이미지를 생성하고 모든 서버를 실행하려면 5432

에 app3.js app1.js. 그렇게 할 수 있을까요? 그렇다면 어떻게 할 수 있습니까? 내 지식에 따라 우리는 도커 파일에서 하나의 명령 만 실행할 수 있습니다.

답변

5

Docker Compose을 사용하는 것이 좋습니다.

각 서버는 고유 한 Dockerfile을 가지며 docker-compose.yml 파일은 이러한 포트와 이들이 상호 작용하는 방식을 정의합니다.

3

Ethan의 제안 된 메커니즘은 여러 도킹 컨테이너를 동시에 실행하는 데 적합하지만 이유는 설명하지 않습니다.

각 도커 컨테이너는 여러 프로세스 (서버)를 생성 할 수 있지만 도커 컨테이너는 프로세스 중 하나를 포 그라운드에두고 도커는 컨테이너 라이프 사이클이 일반적으로 포 그라운드 프로세스의 수명주기를 반영합니다.

하나의 도커 컨테이너에서 모든 프로세스를 실행하면 도킹 해제의 이점이 손실됩니다. 따라서 프로세스 당 하나의 도커 컨테이너를 사용하는 것이 좋습니다.

+0

감사를 사용하고있다 Runit

사용할 수 있습니다. –

0

phusion passenger nodejs image을 확인하시기 바랍니다. 여러 nodej 프로세스의 데이터를 처리하는 단일 서버를 실행하도록 구성 할 수 있습니다.

2

'권장'되지는 않지만 가능한 것은 확실합니다. 그것은 문서화되어 있습니다.

Docker and Supervisord

또는 당신은 최근에 나는 그것을 명확히하기위한 s6

관련 문제