6 điểm bởi GN⁺ 2024-01-14 | 1 bình luận | Chia sẻ qua WhatsApp

So sánh Podman và Docker

  • Cả Podman và Docker đều cho phép chạy, quản lý và triển khai container theo cách hiệu quả và có khả năng mở rộng.
  • Podman sử dụng kiến trúc không daemon, cho phép người dùng trực tiếp quản lý container.
  • Podman được tích hợp với Systemd để quản lý vòng đời của container.
  • Có thể điều phối nhiều container bằng Podman Compose, công cụ cung cấp chức năng tương tự Docker Compose.
  • Về mặt bảo mật, Podman cung cấp cấu hình mặc định được tăng cường hơn Docker.

Cài đặt Podman

  • Podman có thể chạy trên macOS, Windows và các bản phân phối Linux phổ biến.
  • Trên Linux, Podman chạy native; trên Windows và macOS, nó hoạt động thông qua máy ảo.
  • Quá trình cài đặt được thực hiện bằng các lệnh sudo apt updatesudo apt install podman.

Chạy container đầu tiên

  • Sử dụng image "Hello World!" để kiểm tra xem cài đặt Podman có hoạt động bình thường hay không.
  • Podman tuân theo tiêu chuẩn OCI (Open Container Initiative), vì vậy tương thích với các image Docker.

Sử dụng tên image ngắn

  • Podman khuyến nghị sử dụng tên đầy đủ khi tham chiếu đến image.
  • Khi dùng tên ngắn, Podman sẽ tham chiếu tệp cấu hình để xác định tên image đã được chuẩn hóa.

Sử dụng registry image riêng tư

  • Podman, giống như Docker, có thể được sử dụng cùng với registry riêng tư.
  • Có thể dùng tài khoản Docker Hub để làm theo ví dụ thiết lập registry riêng tư.

Điều phối nhiều container

  • Có thể điều phối nhiều container bằng Podman Compose.
  • Podman Compose cung cấp chức năng tương tự Docker Compose và tương thích với các tệp docker-compose.yml hiện có.

Ý kiến của GN⁺:

  • Podman là một container engine cung cấp cấu hình mặc định nhanh hơn và được tăng cường về bảo mật so với Docker. Đây có thể là một lựa chọn thay thế hấp dẫn cho các nhà phát triển và quản trị viên hệ thống.
  • Kiến trúc không daemon của Podman giúp việc theo dõi kiểm toán bảo mật trở nên dễ dàng hơn, từ đó cho phép xác định người dùng khi xảy ra sự cố bảo mật.
  • Tính tương thích giữa Podman và Docker giúp người dùng Docker hiện tại dễ dàng chuyển sang Podman hơn. Điều này hữu ích cho các tổ chức muốn cải thiện bảo mật và hiệu năng trong khi vẫn duy trì hạ tầng và quy trình làm việc hiện có.

1 bình luận

 
GN⁺ 2024-01-14
Ý kiến trên Hacker News
  • Podman và systemd

    • Podman từng rất tốt khi hỗ trợ file unit của systemd. Có thể tự động khởi động và cập nhật container cũng như pod.
    • Tuy nhiên, họ đã loại bỏ tính năng này khi ưu tiên Quadlet. Giờ đây container đơn lẻ vẫn có thể dùng file unit, nhưng với pod thì cần định nghĩa cụm Kubernetes.
    • Không giống Docker, các container của Podman hoạt động theo định nghĩa SELinux, nên liên tục gặp vấn đề không thể truy cập các thư mục được ánh xạ.
    • Có sự bối rối về việc nên dùng Podman hay Kubernetes, và liệu có nên tạo thư mục chuyên dụng thay vì đặt ở vị trí hợp lý về mặt logic hay không.
  • Khả năng tương thích mạng của Podman

    • Một trong những ưu điểm lớn của Podman là không phá hỏng cấu hình mạng như Docker.
    • Khi dùng Docker, việc vận hành bridge cùng với máy ảo KVM là cơn ác mộng, nhưng Podman thì mặc định hoạt động ổn.
    • Cũng từng có vấn đề VPN bị Docker làm hỏng hoặc gián đoạn, nhưng cách Podman xử lý mạng cho đến nay vẫn chưa cản trở các công việc khác.
  • Mức độ phổ biến ngày càng tăng của Podman

    • Nhiều công cụ được tạo ra với giả định có thêm nhóm sudo docker, nhưng điều này gây vấn đề trong các cấu hình Docker chú trọng bảo mật.
    • Podman có thể dùng mà không cần quyền root, đây là điểm tích cực về mặt bảo mật.
  • Trải nghiệm dùng Podman của một kỹ sư RHEL

    • Với tư cách là một kỹ sư RHEL được chứng nhận, người này rất thích dùng Podman cho nhu cầu container cá nhân.
    • Tuy nhiên, với các lập trình viên thì họ vẫn dùng Docker, vì chưa có thứ gì thay thế được sự đơn giản của Docker Compose.
    • Trong pipeline CI, họ dùng Buildah, nhưng với người dùng là lập trình viên thì Docker Compose vẫn chiếm ưu thế.
  • Lỗ hổng bảo mật giữa Docker và UFW

    • Đã suýt trở thành nạn nhân của lỗ hổng bảo mật giữa Docker và UFW.
  • Tầm quan trọng của container rootless và namespace tách biệt

    • Container rootless và namespace tách biệt là các tính năng bảo mật quan trọng.
    • Docker cũng có thể chạy rootless và việc thiết lập không quá phức tạp.
    • Lợi thế của việc tiếp tục dùng Docker là khả năng tiếp cận tốt hơn: cộng đồng lớn hơn, nhiều blog hơn, khả năng tìm thấy cấu hình Docker Compose rộng rãi hơn, và có đồng nghiệp biết cách dùng.
    • Cuối cùng thì cả Podman lẫn Docker đều chạy tiến trình trong các namespace tách biệt khỏi host.
  • Podman, lựa chọn thay thế Docker của Red Hat

    • Không rõ vì sao Red Hat lại tạo ra một lựa chọn thay thế Docker, nhưng Podman là thứ đáng thích.
    • Podman có thể làm gần như mọi thứ Docker làm được, thậm chí có nhiều tính năng hơn (ví dụ: pod), hoặc làm theo cách tốt hơn (ví dụ: quy trình tạo container không cần daemon).
    • Vấn đề chính với lập trình viên có thể là Docker Compose, nhưng nếu chỉ dùng file Compose đơn giản thì có script podman-compose nhằm tương thích với đặc tả Docker Compose.
    • Cũng có thể dùng Podman làm backend cho Docker Compose. Tính đến năm 2024, ít nhất trên máy Linux, có vẻ không còn lý do gì để dùng Docker. Không chắc Podman hoạt động ra sao trên macOS hay Windows.
  • Cách tiếp cận lấy bảo mật làm trung tâm của Podman

    • Nhiều người thích cách tiếp cận lấy bảo mật làm trung tâm của Podman và một số quyết định của nó. Mặc định, nó cung cấp cấu hình an toàn và tương thích với Docker Compose.
    • Nếu Podman đủ phổ biến, nó có thể tự đi theo hướng riêng cho câu lệnh và file yml. Hiện tại nó vẫn giống một công cụ “phụ thuộc” vào Docker và định dạng file Docker Compose.
    • Podman cần một lựa chọn thay thế swarm để bù đắp cho sự thiếu vắng orchestration ngoài k8s. Điều đó có thể mang lại một cách đơn giản, hợp lý để vận hành container quy mô nhỏ với góc nhìn bảo mật tốt.
  • Những vấn đề gặp phải khi dùng Podman

    • Podman rất tuyệt, nhưng khi bắt đầu dùng như một lựa chọn thay thế Docker, nhiều người đã gặp vấn đề với ánh xạ UID và GID, chính sách SELinux, thiếu cấu hình DNS, v.v.
    • Trong lúc chạy system migration để khắc phục, đã nhiều lần vô tình làm hỏng cấu hình. Có những vấn đề phức tạp liên quan đến ACL bảo mật, ánh xạ ID và nhãn.
    • Kết quả cuối cùng là hài lòng, nhưng đây không phải kiểu giải pháp “cứ thế là chạy” như Docker. Có thể mọi thứ đã được cải thiện kể từ khi họ bắt đầu dùng.
  • Podman và Apple Silicon

    • Không giống Docker, Podman không có khả năng chạy image x86 trên Apple Silicon thông qua Rosetta.
    • QEMU quá chậm để dùng thực tế.