Container có thể tự khởi động lại trong Docker thông qua tùy chọn cấu hình khởi động lại. Điều này rất hữu ích khi bạn muốn đảm bảo rằng container luôn hoạt động và có thể tự phục hồi sau khi bị dừng hoặc gặp sự cố. Docker cung cấp một số chính sách khởi động lại để bạn có thể thiết lập cho các container. Dưới đây là chi tiết về khả năng tự khởi động lại của container và cách cấu hình nó.

1. Chính sách khởi động lại (Restart Policy)

Docker hỗ trợ các chính sách khởi động lại giúp bạn chỉ định cách mà container nên được khởi động lại trong các tình huống khác nhau. Có bốn chính sách chính mà bạn có thể sử dụng:

a. no (không)

Đây là chính sách mặc định. Nếu container dừng, nó sẽ không được khởi động lại.

docker run --restart no <image_name>

b. always (luôn luôn)

Container sẽ luôn được khởi động lại bất kể lý do dừng lại. Điều này rất hữu ích cho các dịch vụ cần hoạt động liên tục.

docker run --restart always <image_name>

c. unless-stopped (trừ khi dừng)

Container sẽ tự khởi động lại trừ khi nó được dừng thủ công. Nếu bạn sử dụng lệnh docker stop, container sẽ không tự khởi động lại.

docker run --restart unless-stopped <image_name>

d. on-failure (trên cơ sở lỗi)

Container sẽ tự khởi động lại chỉ khi nó dừng với mã thoát không bằng 0 (tức là gặp lỗi). Bạn có thể chỉ định số lần tối đa để khởi động lại.

docker run --restart on-failure[:max-retries] <image_name>

2. Cách thiết lập

Để thiết lập chính sách khởi động lại cho một container, bạn có thể sử dụng tùy chọn --restart khi chạy lệnh docker run. Ví dụ:

docker run --restart always -d <image_name>

3. Xem cấu hình khởi động lại

Để xem cấu hình khởi động lại của một container đã chạy, bạn có thể sử dụng lệnh docker inspect:

docker inspect <container_id> --format '{{.HostConfig.RestartPolicy.Name}}'

Kết luận

Container có thể tự khởi động lại trong Docker thông qua các chính sách khởi động lại. Điều này giúp đảm bảo rằng các ứng dụng và dịch vụ của bạn luôn hoạt động, ngay cả khi gặp sự cố. Bạn có thể tùy chỉnh chính sách khởi động lại theo nhu cầu cụ thể của từng container, từ việc luôn khởi động lại cho đến chỉ khởi động lại trong trường hợp có lỗi. Điều này giúp cải thiện tính khả dụng và độ tin cậy cho các ứng dụng chạy trong môi trường Docker.