Podman Desktop: Giải pháp thay thế Docker Desktop mượt mà, bảo mật và ‘nhẹ máy’ hơn

Docker tutorial - IT technology blog
Docker tutorial - IT technology blog

Vì sao mình quyết định chia tay Docker Desktop?

Nếu bạn làm việc trong các doanh nghiệp lớn, chắc hẳn “nỗi lo” bản quyền Docker Desktop không còn xa lạ. Tuy nhiên, phí bản quyền chỉ là một phần câu chuyện. Điều khiến mình thực sự ức chế là lượng tài nguyên mà nó ngốn trên Windows. Có những lúc mình chỉ treo một con Nginx và một Database nhẹ nhàng mà RAM đã bị chiếm dụng tới 3GB, quạt chip thì kêu vù vù.

Năm ngoái, khi triển khai hệ thống microservices cho khách hàng, mình đã thử chuyển toàn bộ team dev sang Podman Desktop. Kết quả thực sự ấn tượng: mức chiếm dụng CPU và RAM giảm khoảng 35% so với trước đó. Quan trọng hơn, Podman chạy ở chế độ rootless (không cần quyền admin). Điều này giúp hệ thống bảo mật hơn hẳn, ngăn chặn rủi ro tấn công leo thang đặc quyền từ container vào máy host.

3 điểm khác biệt “đáng tiền” của Podman so với Docker

Trước khi bắt tay vào cài đặt, bạn cần hiểu rõ tại sao Podman lại đang trở thành xu hướng:

  • Kiến trúc Daemonless: Docker dựa vào một tiến trình chạy ngầm (Docker Daemon) để quản lý mọi thứ. Nếu daemon này “treo”, dàn container của bạn cũng “sập” theo. Podman thì khác, nó chạy trực tiếp dưới dạng các tiến trình độc lập, giúp hệ thống ổn định và nhẹ nhàng hơn.
  • Rootless by default: Bạn có thể chạy container bằng user thường. Ngay cả khi container bị chiếm quyền, kẻ tấn công vẫn bị “nhốt” trong phạm vi user đó, không thể phá hoại nhân hệ điều hành.
  • Khái niệm Pod: Đúng như cái tên (Pod-man), công cụ này hỗ trợ gom nhóm nhiều container vào một Pod tương tự như Kubernetes. Bạn có thể test các cấu hình K8s ngay tại local cực kỳ tiện lợi.

Hướng dẫn cài đặt Podman Desktop chi tiết

1. Cài đặt trên Windows (Dùng WSL2)

Về bản chất, Podman trên Windows vẫn cần môi trường Linux để vận hành. WSL2 (Windows Subsystem for Linux) là lựa chọn tối ưu nhất hiện nay.

Bước 1: Tải bộ cài .exe từ trang chủ Podman Desktop. Phần cài đặt giao diện (UI) khá đơn giản, bạn cứ “Next” thần chưởng là xong.

Bước 2: Khi mở ứng dụng lần đầu, bạn cần khởi tạo “Podman Machine”. Đây thực chất là một máy ảo siêu nhẹ chạy trong WSL2.

# Nếu thích dùng command line, hãy gõ lệnh này:
podman machine init --cpus 2 --memory 2048
podman machine start

Kinh nghiệm xương máu: Đừng để RAM mặc định. Nếu máy bạn có 16GB RAM, hãy mạnh dạn cấp cho Podman khoảng 4GB để chạy nhiều container nặng mà không bị giật lag.

2. Cài đặt trên Linux (Ubuntu/Debian)

Với Linux, Podman thực sự là “cá gặp nước” vì nó chạy native, không cần máy ảo trung gian.

sudo apt update
sudo apt install -y podman

Để quản lý trực quan, bạn nên cài thêm bản Flatpak của Podman Desktop. Nó giúp bạn theo dõi log và tài nguyên container chỉ bằng vài cú click chuột.

Thực hành: Chạy container đầu tiên

Giao diện của Podman Desktop rất hiện đại và có nét tương đồng với Docker Desktop. Bạn sẽ không mất quá 10 phút để làm quen đâu.

Cách 1: Thao tác trên giao diện (GUI)

  1. Vào tab Images, chọn Pull an image.
  2. Nhập docker.io/library/nginx:latest và đợi tải về.
  3. Nhấn nút Play. Tại phần Port Mapping, hãy map port 8080 của máy bạn vào port 80 của container.

Cách 2: Sử dụng dòng lệnh (CLI)

Vì Podman tương thích hoàn toàn với Docker API, bạn có thể dùng các câu lệnh quen thuộc. Mình thường đặt alias để gõ cho nhanh:

# Chạy nhanh một container nginx
podman run -d --name my-web -p 8080:80 nginx

# Kiểm tra trạng thái
podman ps

Truy cập localhost:8080 trên trình duyệt, nếu thấy trang chào mừng của Nginx là bạn đã thành công!

Mẹo thực chiến: Biến Podman thành Docker “giả”

Nhiều script cũ hoặc tool như Jenkins vẫn mặc định gọi lệnh docker. Để không phải sửa code thủ công, hãy thêm dòng này vào file .bashrc hoặc .zshrc:

alias docker=podman

Ngoài ra, trong phần Settings của Podman Desktop, bạn hãy bật tính năng “Docker Compatibility”. Nó sẽ tạo một symlink từ socket của Podman sang /var/run/docker.sock. Nhờ đó, các extension trên VS Code hay Testcontainers vẫn chạy ngon lành mà không hề nhận ra sự thay đổi.

Tính năng “đáng đồng tiền bát gạo”: Quản lý Pod

Thay vì chạy các container lẻ loi, Podman cho phép bạn gom chúng lại. Ví dụ: mình thường chạy một Pod gồm Frontend + Backend + Redis.

# Tạo Pod chung
podman pod create --name my-app-stack -p 3000:3000

# Đẩy container vào Pod
podman run -d --pod my-app-stack --name frontend-app my-frontend-image

Khi nằm chung một Pod, các container có thể gọi nhau qua localhost. Đây là cách mô phỏng môi trường Kubernetes chuẩn nhất ngay tại máy cá nhân.

Lời kết

Chuyển sang Podman Desktop không chỉ để tiết kiệm chi phí. Đây là bước đi thông minh để tối ưu tài nguyên và tăng cường bảo mật cho máy tính của bạn. Nếu máy bạn đang ì ạch vì Docker, hãy thử gỡ bỏ nó và cài Podman ngay hôm nay. Sau khoảng một tuần trải nghiệm, bạn sẽ thấy sự khác biệt rõ rệt về hiệu năng.

Share: