Nếu bạn là một người đam mê công nghệ và thường xuyên tìm hiểu về các dịch vụ tự host, hẳn bạn đã quen thuộc với khái niệm container. Với khả năng cách ly mạnh mẽ, dễ dàng triển khai và tiêu thụ tài nguyên thấp, các container đã trở thành xương sống của mọi máy chủ thử nghiệm và trạm làm việc tự host. Trong khi Docker vẫn là một trong những môi trường runtime container phổ biến nhất, đây không phải là lựa chọn duy nhất dành cho những người thích mày mò. Nếu bạn đang tìm kiếm các giải pháp thay thế Docker, Podman chắc chắn sẽ đứng đầu danh sách. Bài viết này sẽ cung cấp một hướng dẫn nhanh để giúp bạn bắt đầu với nền tảng tuyệt vời này.
Giao diện Portainer hiển thị nhiều container Docker đang hoạt động
Podman là gì và khác biệt với Docker như thế nào?
Về cốt lõi, cả Podman và Docker đều là những công cụ containerization, được thiết kế để giúp bạn triển khai các dịch vụ trong môi trường biệt lập. Tuy nhiên, thay vì chạy một daemon (một ứng dụng phụ chạy nền) để xử lý khối lượng công việc containerization của bạn, Podman lại có kiến trúc không daemon (daemon-less). Điều này làm cho Podman an toàn hơn đối thủ của nó, bởi vì bạn không có một daemon nào hoạt động như một bề mặt tấn công tiềm ẩn cho các mối đe dọa bảo mật.
Theo mặc định, Podman chạy các container trong môi trường không có quyền root (rootless), trong khi Docker yêu cầu bạn phải tự kích hoạt chế độ rootless nếu muốn tránh các lỗ hổng bảo mật liên quan đến việc triển khai container với quyền root. Đúng như tên gọi, Podman có thể kết hợp nhiều container lại với nhau thành các “pod”. Tương tự như các pod trong Kubernetes, pod là tập hợp các dịch vụ chia sẻ tài nguyên mạng và lưu trữ chung, làm cho chúng trở nên hoàn hảo khi bạn muốn một số ứng dụng làm việc cùng nhau trong khi vẫn giữ chúng cách ly với phần còn lại của hệ thống tự host.
Chạy lệnh Podman trong môi trường máy ảo Debian, minh họa kiến trúc không daemon
Hướng dẫn cài đặt Podman đơn giản
Không giống như Docker, Podman được tích hợp sẵn trong hầu hết các bản phân phối RHEL, vì vậy bạn có thể bỏ qua phần này nếu đang sử dụng Fedora hoặc các lựa chọn thay thế Red Hat. Đối với những người dùng các bản phân phối dựa trên Debian, bạn có thể cài đặt Podman từ kho lưu trữ apt
theo các bước sau:
-
Khởi chạy giao diện terminal có sẵn trong bản phân phối của bạn.
-
Chạy lệnh
apt install
để cài đặt gói Podman.sudo apt install podman -y
Màn hình terminal đang hiển thị quá trình cài đặt Podman trên hệ điều hành Linux sử dụng lệnh sudo apt install
Nếu bạn đang sử dụng một bản phân phối không phải Debian, bạn có thể sử dụng yum
, nix
, aur
hoặc các kho lưu trữ khác có trong hệ điều hành cụ thể của mình.
Triển khai container đầu tiên với Podman
Bây giờ bạn đã cấu hình Podman trên máy của mình, đã đến lúc triển khai một container. May mắn thay, Podman tương thích với kho lưu trữ image của Docker Hub, và tất cả những gì bạn phải làm là thêm chuỗi docker.io/
trước tên image. Trong hướng dẫn này, chúng ta sẽ triển khai Node-RED, một công cụ tự động hóa nhà thông minh mạnh mẽ.
-
Trong giao diện terminal, chạy lệnh
podman pull
để tải xuống một image container.podman pull image_name podman pull docker.io/nodered/node-red
Lệnh Podman pull đang tải về image Node-RED từ Docker Hub, sẵn sàng cho việc triển khai container
-
Tương tự như Docker, bạn có thể sử dụng lệnh
podman run
để triển khai một container từ image của nó:podman run -tên_tham_số tên_image
.podman run -it -p 1880:1880 -v node_red_data:/data --name mynodered docker.io/nodered/node-red
Thực thi lệnh podman run để khởi chạy container Node-RED, cấu hình cổng và volume
-
Cuối cùng, bạn có thể kiểm tra trạng thái các container Podman của mình bằng lệnh
ps
.podman ps
Kiểm tra trạng thái các container Podman đang chạy bằng lệnh podman ps, hiển thị thông tin chi tiết
Xây dựng môi trường tự host mạnh mẽ cùng Podman
Với những kiến thức cơ bản này, bạn đã có đủ hành trang để làm việc với Podman. Nếu bạn muốn làm việc với các pod, bạn có thể sử dụng lệnh podman create pod
để tạo một pod. Sau đó, bạn có thể chạy các container trong đó bằng cách thêm cờ --pod
khi thực thi lệnh podman run
. Vì Podman tương thích với Kubernetes, bạn có thể sử dụng Kubernetes làm nền tảng điều phối container cho các dịch vụ yêu thích của mình.
Mặc dù Podman an toàn hơn Docker, nhưng nó không dễ tiếp cận bằng đối thủ của nó. Chắc chắn, bạn có thể tận dụng các tiện ích bổ sung như Podman-Compose và Quadlet để nâng cao tiện ích của nó, nhưng Docker Compose vẫn tốt hơn khi bạn muốn một phương pháp dễ dàng để triển khai các container từ tệp YAML.
Tổng quan các lệnh Podman cơ bản cho việc quản lý container và pod trong môi trường tự host
Kết luận
Podman mang đến một luồng gió mới trong thế giới container hóa, đặc biệt với kiến trúc không daemon và khả năng chạy rootless mặc định, mang lại lợi ích đáng kể về bảo mật. Dù việc cài đặt và sử dụng cơ bản khá đơn giản, và khả năng tương thích với Docker Hub giúp người dùng dễ dàng chuyển đổi, Podman vẫn còn một chặng đường để đạt được sự tiện dụng như Docker Compose trong việc quản lý các môi trường phức tạp. Tuy nhiên, đối với những người dùng tự host ưu tiên bảo mật và hiệu quả, Podman là một lựa chọn tuyệt vời và đáng để khám phá. Hãy thử nghiệm Podman ngay hôm nay để tối ưu hóa môi trường tự host của bạn và trải nghiệm những ưu điểm mà nó mang lại!