Hướng dẫn 2 cách khởi động Container một cách tự động
09/12/2020Có hai cách để khởi động Container một cách tự động. Bạn có thể sử dụng những tiện ích của Docker. Hoặc bạn có thể sử dụng Process Manager. Tuy nhiên, chúng ta nên chọn cách nào để khởi động Container? Bài viết này, Viettel IDC sẽ đưa ra một số phân tích chi tiết của mình nhé.
2 cách giúp bạn khởi động Container một cách tự động
Tại sao bạn nên sử dụng chính sách hỗ trợ khởi động Container lại của Docker?
Docker cung cấp các chính sách hỗ trợ khởi động Container lại nhằm mục đích để kiểm soát việc Container của bạn tự động khởi động khi chúng thoát ra hay khi Docker khởi động lại. Chính sách khởi động Container này đảm bảo rằng các Container đã liên kết trước đó được bắt đầu theo đúng thứ tự. Chúng tôi khuyên bạn nên sử dụng chính sách hỗ trợ tự khởi động Container lại này và tránh sử dụng trình quản lý quy trình (Process Manager) để khởi động Container.
Các chính sách hỗ trợ khởi động Container lại khác với dấu hiệu --live-restore của lệnh dockerd. Việc sử dụng --live-restore cho phép bạn vẫn duy trì được các Container của mình chạy trong quá trình nâng cấp Docker, mặc dù mạng và đầu vào của người dùng sẽ bị gián đoạn đôi chút.
>> Xem thêm: Container là gì? Đặc điểm kỹ thuật của Container?
2 cách để hỗ trợ khởi động Container lại
Cách 1: Sử dụng chính sách hỗ trợ khởi động Container lại
Để có thể cấu hình chính sách hỗ trợ khởi động Container lại, bạn hãy sử dụng cờ --restart khi sử dụng lệnh docker run. Giá trị của cờ --restart có thể là bất kỳ giá trị nào sau đây:
+ no: Không tự động khởi động Container lại. (mặc định)
+ on-failure: Khởi động Container lại trong trường hợp nếu nó thoát do lỗi, biểu hiện dưới dạng mã thoát non-zero.
+ always: Luôn khởi động Container lại nếu nó dừng lại. Nếu nó bị dừng theo cách thủ công, nó chỉ được khởi động lại khi Docker daemon khởi động lại. Hoặc chính Container được khởi động lại theo cách thủ công.
+ unless-stopped: Tương tự như always. Nhưng nó áp dụng cho trường hợp khi Container bị dừng (theo cách thủ công hoặc bằng một cách nào đó), nó không được khởi động lại ngay cả sau khi Docker daemon đã khởi động lại.
Chi tiết chính sách khởi động Container lại
Hãy ghi nhớ những điều sau khi sử dụng chính sách khởi động Container lại:
+ Chính sách khởi động Container lại chỉ có hiệu lực sau khi Container khởi động thành công. Trong trường hợp này, bắt đầu thành công có nghĩa là Container đã hoạt động ít nhất 10 giây và Docker đã bắt đầu giám sát nó. Điều này ngăn một Container vẫn chưa ở trạng thái bắt đầu nhưng đã đi vào vòng lặp khởi động lại.
+ Nếu bạn dừng một Container theo cách thủ công, chính sách khởi động Container lại của nó sẽ bị bỏ qua cho đến khi hoặc là daemon Docker khởi động lại hoặc là Container đó được khởi động lại theo cách thủ công. Đây là một nỗ lực khác để ngăn vòng lặp khởi động lại.
+ Chính sách khởi động Container lại chỉ áp dụng cho Container mà thôi. Các chính sách khởi động lại cho dịch vụ Swarm được cấu hình khác nhau.
Sử dụng cơ chế của Docker để khởi động Container lại
Cách 2: Sử dụng Process Manager
Nếu các chính sách khởi động Container lại không phù hợp với nhu cầu của bạn, chẳng hạn như khi các quy trình bên ngoài Docker phụ thuộc vào các Docker Container, bạn có thể sử dụng một Process Manager ví dụ Upstart, Systemd hay Supervisor để thay thế.
Lưu ý, bạn đừng cố gắng kết hợp các chính sách khởi động lại Docker với Process Manager cấp máy chủ, vì điều này tạo ra xung đột.
Để sử dụng Process Manager, hãy cấu hình nó để khởi động Container hoặc dịch vụ của bạn bằng cách sử dụng câu lệnh tương tự như docker start hoặc docker service , bạn sẽ có thể khởi động Container một cách thủ công.
>> Xem thêm: Ảo hóa Container và Virtual Machine khác nhau như thế nào?
Sử dụng Process Manager bên trong Container
Các Process Manager cũng có thể chạy trong Container để kiểm tra xem quy trình có đang chạy hay không và khởi động khởi động Container hoặc khởi động lại nó nếu như nó không xảy ra.
Lưu ý, Docker không khuyến nghị cách tiếp cận này, vì nó phụ thuộc vào nền tảng. Thậm chí nó còn có thể phụ thuộc vào sự khác nhau trong các phiên bản khác nhau của một bản Linux nhất định.
Kết luận
Bài viết vừa rồi Viettel IDC đã đề cập đến hai hình thức giúp khởi động Container một cách tự động. Qua đánh giá thì việc sử dụng chính sách hỗ trợ khởi động Container lại của Docker phần nào an toàn hơn cho người sử dụng. Tuỳ vào nhu cầu và hệ thống của mình, bạn đọc có thể tham khảo thêm để đưa ra những sựa lựa chọn phù hợp nhé.
Ngoài ra, mỗi khi nhắc đến khái niệm về Docker hay Container thì chắc hẳn bạn cũng đang tìm kiếm một dịch vụ liên quan đến Kubernetes. May mắn là hiện tại Viettel IDC cũng đang có chương trình hỗ trợ dùng thử và trải nghiệm đối với dịch vụ Viettel Kubernetes Service. Nếu bạn đọc quan tâm, hãy liên hệ với Viettel IDC để được tư vấn thêm nhé.
Để tìm hiểu thêm về các dịch vụ Viettel Kubernetes Service, vui lòng liên hệ đến Viettel IDC:
- Hotline: 1800.8088 (miễn phí cước gọi)
- Fanpage: https://www.facebook.com/viettelidc
- Website: https://viettelidc.com.vn
Viettel IDC – Nhà cung cấp dẫn đầu về giải pháp Trung tâm dữ liệu và Điện toán đám mây tại Việt Nam
Tin liên quan
Lỗi msvcr100.dll là gì? Hướng dẫn cách sửa lỗi msvcr100 dll nhanh chóng
Lỗi msvcr100.dll khiến phần mềm không khởi chạy trên Windows. Xem hướng dẫn khắc phục từng bước để bổ sung thư viện còn thiếu và sửa chữa chương trình bị lỗi.
Top 20 các extension visual studio code hữu ích cho lập trình viên
Các extension Visual Studio Code hữu ích mở rộng khả năng của trình soạn thảo, giúp lập trình viên tối ưu môi trường làm việc và nâng cao hiệu quả viết mã.
Bridge là gì? Cách hoạt động và ứng dụng trong mạng LAN
Bridge là gì? Cầu nối mạng hoạt động dựa trên địa chỉ MAC để kết nối các phân đoạn LAN, kiểm soát luồng dữ liệu và hỗ trợ triển khai mạng vật lý lẫn mạng ảo.
Lỗi Blocked due to other 4xx issue là gì? Nguyên nhân và cách fix lỗi
Lỗi Blocked due to other 4xx issue khiến Google không lập chỉ mục URL, cần xác định đúng mã HTTP và nguyên nhân để khắc phục hiệu quả trong Search Console.
Test case là gì? Cách viết test case và mẫu minh họa cho người mới
Test case là gì và làm sao để viết rõ ràng, đúng yêu cầu? Nắm vững cách xây dựng trường hợp kiểm thử qua ví dụ cụ thể để phát hiện sai lệch trong hoạt động phần mềm.
AI Inference là gì? Cơ chế và vai trò trong vận hành AI
AI inference là gì? Cách mô hình AI tạo kết quả sau huấn luyện, phân biệt với AI training, các hình thức triển khai và ứng dụng thực tế trong doanh nghiệp.
DBeaver là gì? Hướng dẫn cài đặt và kết nối cơ sở dữ liệu với DBeaver
DBeaver là gì? Khám phá tính năng quản lý cơ sở dữ liệu, các phiên bản miễn phí và trả phí cùng hướng dẫn cài đặt, kết nối, chạy truy vấn SQL cho người mới.
Cách thay đổi mật khẩu máy tính trên Windows 10, 11 đơn giản
Cách thay đổi mật khẩu máy tính trên Windows 10, 11 qua Settings, Control Panel, CMD và các công cụ quản trị được hướng dẫn chi tiết theo từng bước dễ thực hiện.
Microsoft Management Console là gì? Cách sử dụng MMC cho người mới
Microsoft Management Console là gì? Đây là nền tảng tập hợp các công cụ quản trị Windows, hỗ trợ quản lý hệ thống, thêm snap-in và lưu console theo nhu cầu sử dụng.
Rủi ro khi sử dụng giả lập online và cách phòng tránh
Rủi ro khi sử dụng giả lập online có thể gây lộ dữ liệu, mất quyền kiểm soát tài khoản, lừa đảo trực tuyến, vi phạm chính sách game, gián đoạn thao tác và phát sinh chi phí.


Bình luận ()