2016-07-27 18 views
6

Tôi có ba máy chủ tốc hành được ghi trên nút. Các máy chủ này đang phục vụ các mục đích khác nhau và do đó chạy trên các cổng khác nhau.Chạy nhiều máy chủ từ một hình ảnh docker

Ví dụ: app1.js trên 8000, app2.js trên 5000 và app3.js trên 5432.

Tôi muốn tạo ra một hình ảnh Docker sử dụng một tập tin Docker và chạy tất cả các máy chủ. Chúng tôi có thể làm như vậy? Nếu vậy, làm thế nào chúng ta có thể làm điều đó? Theo kiến ​​thức của tôi, chúng tôi chỉ có thể chạy một lệnh từ tệp docker.

Trả lời

5

Bạn có thể muốn xem xét sử dụng Docker Compose.

Mỗi máy chủ sẽ có Dockerfile riêng và tệp docker-compose.yml của bạn sẽ xác định các cổng này hiển thị và cách chúng tương tác.

3

Cơ chế được đề xuất bởi Ethan là chính xác để chạy nhiều vùng chứa docker cùng một lúc, nhưng không giải thích tại sao. Để giải thích thêm một chút, mỗi thùng chứa docker có thể sinh ra nhiều quy trình (máy chủ), nhưng một thùng chứa docker cần một trong các quy trình ở mặt trước và docker vòng đời của container thường phản ánh vòng đời của tiến trình nền trước.

Rất nhiều lợi ích của việc dockerization sẽ bị mất khi bạn chạy tất cả các quy trình trong một vùng chứa docker. Và do đó nó được khuyến khích để có một container docker cho mỗi quá trình.

+0

Cảm ơn để làm rõ rằng. –

0

Bạn có thể muốn xem phusion passenger nodejs image. Bạn có thể cấu hình nó để chạy một máy chủ duy nhất phục vụ dữ liệu từ nhiều quá trình nodejs.

2

Mặc dù không được "đề xuất", chắc chắn bạn có thể. Nó thậm chí còn được ghi lại.

Docker and Supervisord

Hoặc bạn có thể sử dụng Runit

Gần đây tôi đã được sử dụng s6

Các vấn đề liên quan