- Quadlet là công cụ cho phép chạy container Podman dưới dạng dịch vụ systemd. Điều này hữu ích để tự động khởi động container trong nền sau khi máy chủ khởi động lại.
- Trước đây người ta dùng lệnh
podman generate systemd, nhưng hiện nay nên chuyển sang Quadlet.
Cách cũ
- Cần tạo container, tạo tệp dịch vụ systemd, sau đó di chuyển tệp đó vào thư mục phù hợp rồi kích hoạt dịch vụ.
- Quy trình này có lệnh dài, lặp đi lặp lại và bất tiện vì phải chỉnh sửa tệp thủ công.
Vấn đề
- Cách cũ phức tạp và thiếu linh hoạt.
- So với sự tiện lợi của Docker Compose, người dùng phải làm thủ công khá nhiều việc.
Quadlet
- Với Quadlet, bạn có thể tạo tệp
.container để quản lý container.
- Thông qua phần
[Container], có thể cấu hình image, cổng, volume và biến môi trường.
- Trong phần
[Service], có thể thiết lập chính sách khởi động lại container.
- Trong phần
[Install], có thể thiết lập tự động khởi động khi boot.
Điểm tốt hơn
- Có thể quản lý mọi cấu hình trong một tệp duy nhất và sử dụng toàn bộ tùy chọn của systemd.
- Viết tệp cấu hình dễ hơn viết script.
- Có thể quản lý phụ thuộc một cách dễ dàng.
Phụ thuộc
- Nếu container ứng dụng phụ thuộc vào container cơ sở dữ liệu, có thể thiết lập phụ thuộc bằng các tùy chọn
Requires và After trong phần [Unit].
Có quá nhiều tệp không?
- Việc chia thành nhiều tệp có thể giúp giảm độ phức tạp.
- Có thể nhóm các tệp liên quan lại để quản lý.
Cập nhật image
- Dùng tùy chọn
AutoUpdate=registry sẽ cho phép cập nhật image và khởi động lại container bằng lệnh podman auto-update.
- Việc dùng thẻ
latest có thể rủi ro, nên khuyến nghị dùng thẻ phiên bản cụ thể.
Về podman-compose
podman-compose là script chuyển đổi tệp Compose sang Podman và systemd, nhưng không phù hợp như một giải pháp dài hạn.
- Quadlet phù hợp hơn với thiết kế không daemon của Podman.
Tài liệu bổ sung
- Để hiểu sâu hơn về Quadlet, nên đọc trang hướng dẫn
podman-systemd.unit.
- Quadlet không chỉ quản lý container mà còn có thể quản lý pod, network và volume.
- Nếu chưa quen viết tệp unit của systemd, hãy tham khảo thêm các trang hướng dẫn
systemd.unit và systemd.service.
podlet là công cụ có thể hỗ trợ tạo tệp Quadlet từ lệnh Podman hoặc tệp Compose.
1 bình luận
Ý kiến Hacker News
Quadlet là một lựa chọn thay thế cho Docker Compose, hữu ích để "chạy các container phụ thuộc lẫn nhau trong môi trường tương tự môi trường production". Tuy nhiên, nó kém hữu ích hơn trong môi trường phát triển
~/.config/containers/systemd, nên khó tách biệt với từng projectSau khi biết đến Quadlet, có người đã xây dựng homelab dựa trên Atomic OS và Quadlet rootless, và rất khuyến nghị cách này
Quadlet là một trong những công cụ tốt nhất đến từ Podman và đáng giới thiệu cho những ai quan tâm đến công việc dựa trên container
Nhiều người vẫn ngần ngại chuyển từ Docker sang Podman vì sự tiện lợi của Docker Compose
Có đề cập rằng Podman-Compose là "không còn được duy trì", nhưng Podlet cũng ở tình trạng tương tự
Việc upstream của Podman không cung cấp repository cho Debian/Ubuntu gây bất tiện
Có người đã dùng openSUSE MicroOS để chạy container Podman dưới systemd/quadlet và hiện hài lòng với cấu hình này
Có người thích sự tích hợp giữa systemd và Podman
Việc Quadlet xuất hiện trên trang nhất Hacker News là điều thú vị
Quadlet cho phép sử dụng container như các dịch vụ hệ thống thông thường