2015-05-04 20 views
6

Tôi hiện đang chạy hai máy chủ ảo với hình ảnh offical ghost imagenginx-proxy, đây là hình ảnh của tôi.cách tự động giám sát và khởi động lại vùng chứa docker khi nó bị treo?

docker run -d -p 86:2368 --name home -e "VIRTUAL_HOST=hostname.com" ghost 
docker run -d -p 85:2368 --name home-blog -e "VIRTUAL_HOST=blog.hostname.com" ghost 

Tất cả đều hoạt động tốt, nhưng sau một thời gian (đôi khi giờ hoặc một ngày), một trong các máy chủ vitual sẽ bị hỏng và tôi phải khởi động lại vùng chứa để hoạt động.

Tôi tự hỏi có giải pháp nào để tự động giám sát vùng chứa docker và khởi động lại khi nó bị hỏng không?

Trả lời

13

Bạn nên sử dụng --restart (docs):

docker run -d -p 86:2368 --restart always --name home -e "VIRTUAL_HOST=hostname.com" ghost 
+0

Và câu hỏi liên quan nếu bạn sử dụng tùy chọn đó và nó sẽ không tự động khởi động lại sau một sự cố. Cách khởi động lại vùng chứa Docker hiện có ở chế độ khởi động lại = "luôn luôn"? http://stackoverflow.com/questions/29603504/how-to-restart-an-existing-docker-container-in-restart-always-mode – Dijkgraaf

4

Trong thực tế, nó có nhiều khả năng ứng dụng chính của container của bạn bị rơi và không chứa của bạn.

Khi quá trình với ID # 0 dừng hoặc treo trong vùng chứa, khi đó vùng chứa sẽ tự động dừng.

Về mối quan tâm của bạn, tùy chọn khởi động lại (từ lệnh chạy trình cắm) là một khả năng, theo Andy đã nêu.

Một khả năng khác là sử dụng supervisord làm quy trình chính của container. Ứng dụng của bạn sẽ được giám sát bởi người giám sát. Giám sát sẽ cung cấp cho bạn nhiều tùy chọn để xử lý sự cố ứng dụng của bạn. Bạn có nhiều tùy chọn hữu ích về ghi nhật ký, xử lý tín hiệu ...

Xem https://docs.docker.com/articles/using_supervisord/http://supervisord.org/ để biết thêm chi tiết.

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