Với tính dễ sử dụng và hệ sinh thái vững chắc, Docker đã là một công cụ quen thuộc trong hành trình xây dựng phòng lab cá nhân của nhiều người. Tuy nhiên, sau khi trải nghiệm Podman, một giải pháp runtime container không cần daemon và không yêu cầu quyền root, nhiều người dùng đã chuyển đổi hoàn toàn sang Podman. Bên cạnh việc cung cấp bảo mật tốt hơn, Podman còn mang lại khả năng hỗ trợ pod, lý tưởng khi bạn muốn lưu trữ các dịch vụ có liên quan chặt chẽ trên máy trạm cấp độ sản xuất.
Tuyệt vời hơn nữa, bạn có thể trang bị cho hệ thống Podman của mình một vài tiện ích bổ sung thú vị. Trong số đó có Quadlet, một tiện ích cho phép bạn chạy các container như thể chúng là dịch vụ systemd. Nếu điều này nghe có vẻ hấp dẫn, hãy tiếp tục đọc để tìm hiểu cách nắm bắt Quadlet một cách nhanh chóng.
Quadlet là gì và tại sao bạn nên sử dụng?
Trước khi đi sâu vào Quadlet, điều quan trọng là phải hiểu rõ về systemd. Đối với những người chưa quen, systemd là trình quản lý dịch vụ (service manager) chịu trách nhiệm thực thi các chương trình khi bạn khởi động máy Linux của mình. Theo mặc định, Podman sử dụng mô hình fork-exec để chạy các container của bạn. Tuy nhiên, bạn có thể sử dụng Quadlet để triển khai các dịch vụ container hóa dưới sự quản lý của systemd. Mặc dù nghe có vẻ phức tạp, việc coi các ứng dụng dựa trên Podman của bạn như các dịch vụ hệ thống mang lại nhiều lợi ích đáng kể.
Một trong những lợi ích chính là bạn có thể sử dụng Quadlet để tự động cập nhật bộ container của mình. Bạn có thể sử dụng các công cụ của systemd để nhận nhật ký (logs) của container cũng như nhận thông báo nếu một dịch vụ ngừng hoạt động đột ngột. Thêm vào đó là khả năng tự động khởi động các container và khởi động lại chúng khi gặp lỗi, điều này giải thích tại sao nhiều người đam mê home lab lại ưa thích Quadlet.
Chưa kể đến việc Quadlet hỗ trợ các tệp cấu hình container tùy chỉnh. Mặc dù không thể thay thế hoàn toàn Docker Compose, Quadlet là một lựa chọn thay thế vững chắc nếu bạn muốn sử dụng các tài liệu cấu hình khai báo (declarative config documents) khi tạo container trong Podman.
Mô hình triển khai container IT-Tools như một dịch vụ systemd với Quadlet
Hướng dẫn cài đặt và sử dụng Quadlet
Giống như mọi tiện ích khác trong home lab, có nhiều cách để bạn tích hợp Quadlet vào quy trình làm việc của mình. Podman Desktop cung cấp phương pháp đơn giản nhất để cài đặt Quadlet, và quy trình tổng thể là như nhau bất kể bạn đang sử dụng Windows 11 và WSL2 hay một hệ thống Linux. Giả sử bạn đã cấu hình Podman Desktop và đã có một số image container cho Quadlet, hãy thực hiện các bước sau:
Cài đặt Quadlet qua Podman Desktop
- Khởi chạy Podman Desktop và chuyển đến tab Extensions.
Giao diện Podman Desktop với tab Extensions được chọn
- Điều hướng đến menu con Catalog và nhấn nút Install bên cạnh tiện ích mở rộng Podman Quadlet.
Tìm và cài đặt tiện ích mở rộng Podman Quadlet từ Catalog trong Podman Desktop
- Nhấp vào tiện ích mở rộng Quadlets vừa cài đặt và chọn tùy chọn Generate Quadlet.
Tùy chọn tạo Quadlet mới trong giao diện Podman Desktop sau khi cài đặt tiện ích mở rộng
- Chọn local Podman machine làm Container engine, chọn Image làm Quadlet type, và chọn Image mà bạn muốn sử dụng cho container mới trước khi nhấn Generate.
Cửa sổ cấu hình Quadlet: chọn Container Engine, Quadlet Type và Image để khởi tạo
- Đảm bảo rằng tệp cấu hình có các thông số chính xác cho container mới của bạn và nhấp vào nút Load into machine.
Xem lại và tải file cấu hình Quadlet vào Podman machine để triển khai container
- Tùy thuộc vào thông số kỹ thuật hệ thống và image đã chọn, Quadlet sẽ mất một thời gian để triển khai container mới.
Tiến trình tạo và triển khai container mới thông qua Quadlet trong Podman Desktop
Cài đặt Quadlet trên Linux CLI
Nếu bạn đang sử dụng một bản phân phối Linux CLI, bạn có thể tạo một tệp cấu hình app_name.container
bên trong thư mục /etc/containers/systemd
, tải lại systemd bằng lệnh systemctl --user daemon-reload
, và sử dụng lệnh systemctl --user start app_name.service
để khởi động container.
Nâng tầm thiết lập Podman + Quadlet với các tiện ích khác
Nếu bạn đã quen với cú pháp YAML của Docker Compose, bố cục của Quadlet có thể sẽ hơi lạ lẫm. Podlet có thể giúp chuyển đổi các tệp docker-compose.yml
thành mã Quadlet tương đương, mặc dù bạn có thể cần chỉnh sửa kết quả cuối cùng vì Podlet không phải lúc nào cũng hoàn hảo. Sau khi bạn đã thành thạo Quadlet, bạn có thể kết hợp nó với Kubernetes để tạo ra một máy trạm tự lưu trữ (self-hosting workstation) ấn tượng. Nếu bạn đang sử dụng Podman Desktop và muốn khám phá Kubernetes (K8s), chúng tôi khuyên bạn nên thử các tiện ích mở rộng Minikube và Kreate.
Quadlet là một công cụ mạnh mẽ, mang lại khả năng quản lý và tự động hóa vượt trội cho các container Podman bằng cách tích hợp chúng với systemd. Khả năng tự động cập nhật, ghi log chi tiết, và tự động khởi động/khởi động lại dịch vụ biến nó thành một lựa chọn lý tưởng cho cả phòng lab cá nhân lẫn môi trường sản xuất. Đừng ngần ngại khám phá và áp dụng Quadlet để tối ưu hóa việc quản lý container của bạn. Hãy chia sẻ kinh nghiệm của bạn về Quadlet hoặc Podman trong phần bình luận bên dưới!