4 điểm bởi GN⁺ 2024-09-21 | 2 bình luận | Chia sẻ qua WhatsApp
  • Container Desktop là giao diện desktop UI miễn phí, mã nguồn mở để quản lý Podman, Docker và Apple™ Container trên cùng một màn hình, hỗ trợ Windows, macOS và Linux
  • Ngoài engine cục bộ, bạn có thể chuyển đổi trong một trình quản lý giữa kết nối từ xa qua SSH, WSL trên Windows, LIMA trên macOS và Apple™ Container trên Apple silicon
  • Xử lý các tác vụ vận hành hằng ngày qua UI như log, trạng thái, biến môi trường, mount, port, thống kê, terminal tích hợp và mở trình duyệt theo từng container
  • Hỗ trợ quản lý image, bảo mật image, Pod, network, secret, volume, cùng các thiết lập theme, phông chữ, cách khởi động, tray, cập nhật và mức log
  • Ứng dụng dùng giấy phép MIT, cung cấp gói native cho Linux, macOS, Windows và phân phối qua Microsoft Store

Vai trò của Container Desktop

  • Container Desktop là desktop UI dành cho Podman, Docker và Apple™ Container
  • Có thể xử lý môi trường container theo cùng một cách trên Windows, macOS và Linux
  • Quản lý engine cục bộ, máy từ xa qua SSH và môi trường WSL trong một UI
  • Là ứng dụng miễn phí, mã nguồn mở và dùng giấy phép MIT
  • Nếu cần ứng dụng do đội Podman chính thức tạo ra, có Podman Desktop riêng

Engine và cách kết nối

  • Có thể chuyển đổi giữa nhiều container engine và phương thức kết nối trong một trình quản lý
    • Engine native trên Linux
    • Engine được ảo hóa
    • LIMA trên macOS
    • WSL trên Windows
    • Apple™ Container trên Apple silicon
    • Kết nối từ xa qua SSH
  • Các đối tượng được hỗ trợ bao gồm Podman, Docker, Apple™ Container, LIMA, WSL và SSH

Màn hình vận hành container

  • Có thể kiểm tra nguồn gốc và trạng thái của container
  • Có thể xem log, biến môi trường, mount, port và thống kê trực tiếp theo từng container
  • Thực hiện các thao tác cơ bản như start, stop, restart
  • Có thể mở terminal console tích hợp để truy cập container
  • Các dịch vụ được expose có thể mở trực tiếp trong trình duyệt
  • Cùng một workflow hoạt động như nhau trên Podman, Docker và Apple™ Container

Quản lý image, Pod, network, secret và volume

  • Images

    • Có thể pull, build và inspect image
    • Có thể tạo container với port và mount tùy chỉnh
  • Image security

    • Cung cấp tính năng nhận biết các lỗ hổng đã biết và duy trì bảo mật hệ thống
  • Pods

    • Có thể kiểm tra log, process và thông tin chi tiết của Pod
    • Cung cấp tính năng tạo kube
  • Networks

    • Có thể tạo và tái sử dụng network
    • Có thể xử lý thiết lập chi tiết theo từng network
  • Secrets

    • Có thể định nghĩa, kiểm tra và xóa secret trên toàn môi trường
  • Volumes

    • Hỗ trợ chia sẻ volume giữa các container

Thiết lập và tiện ích debug

  • Có thể thiết lập theme và phông chữ monospace
  • Điều chỉnh cách khởi động ứng dụng, hành vi system tray và kiểm soát cập nhật
  • Có thể chọn mức log
  • Hiển thị vị trí lưu thiết lập và log
  • Hướng tới cấu hình thuận tiện cho debug nhờ vị trí log và thiết lập rõ ràng

Tài liệu và gói cài đặt

  • Manual cung cấp hướng dẫn thiết lập theo engine và nền tảng, kèm các lệnh có thể sao chép rồi dán
  • Hướng dẫn Linux bao gồm quick start, cách dùng Podman như Docker, lựa chọn thay thế Docker Desktop và chia sẻ kết nối
  • Hướng dẫn macOS đề cập quick start với colima, Podman/Docker dựa trên LIMA, cách dùng Podman như Docker, Apple™ Container và chia sẻ kết nối
  • Hướng dẫn Windows bao gồm thiết lập và yêu cầu WSL, quick start, cách dùng Podman như Docker, cài đặt tùy chỉnh và mẹo
  • Phần tải xuống cung cấp gói native theo nền tảng, tính theo v5.3.7
    • Linux: .deb, .rpm, .tar.gz, .AppImage, .pacman cho x86_64 và arm64
    • macOS: .dmg cho Apple silicon, .tar.gz portable
    • Windows: Microsoft Store cho x64, .exe dạng cài đặt, .zip portable

2 bình luận

 
ndrgrd 2024-09-27

Tôi biết về thứ gọi là posman từ vài năm trước, nhưng nghe nói nó có khá nhiều lỗi và nhiều điểm gây vướng víu. Gần đây nó đã cải thiện nhiều chưa?

 
GN⁺ 2024-09-21
Ý kiến trên Hacker News
  • Hỗ trợ Kubernetes đã nằm trong kế hoạch, và người phụ trách DevOps của tôi đang rất muốn tôi đưa nó vào
    Có vẻ nhiều người ở đây là power user, nên họ nhìn UI như một kiểu bài kiểm tra thị giác để phán xét xem nó có cần thiết hay không
    Đây không phải dự án thương mại và cũng không theo mục tiêu kinh doanh, nhưng điều đó không có nghĩa là sẽ từ bỏ chất lượng. Tôi cố gắng cung cấp mức dùng tài nguyên tối thiểu ở mọi nơi, trải nghiệm dễ dàng, UI/UX tốt
    Nếu bật developer console, công cụ sẽ giải thích toàn bộ những gì nó đang làm phía sau, và đến một lúc nào đó có thể giúp người dùng hiểu để tự động hóa bằng script và đặc tả
    Ngày nay người dùng thường bị nhìn nhận theo hai hướng: quá thông minh hoặc quá ngốc, nhưng tôi không nhìn như vậy. Ai cũng bắt đầu từ đâu đó, và tôi nghĩ trải nghiệm học tập tăng dần là tốt nhất
    Hồi nhỏ tôi đã làm hỏng rất nhiều radio và đồ chơi, và học được nhiều điều khi nhìn vào bên trong chúng. Dự án này do một người làm sau giờ làm việc, và khi ngoài trời mưa. Ở Bỉ mưa nhiều lắm

    • Tôi cũng không sống cả đời chỉ trong dòng lệnh, nhưng GUI cho Docker có vẻ là một ngách thú vị
      Tôi không chắc chính xác giao điểm của những người biết mình muốn chạy container Docker cục bộ, cũng biết nó hoạt động thế nào, nhưng lại không muốn gõ vài lệnh cần thiết trong prompt là những ai
    • Câu “ngày nay ai cũng bị xem là quá thông minh hoặc quá ngốc” mô tả rất súc tích và thi vị nhiều tình huống trong lĩnh vực này
    • Trông thật sự bóng bẩy. Trang web nói cũng có kế hoạch hỗ trợ các engine khác, tôi tò mò đó là những gì
      Tôi đoán sẽ là tích hợp trực tiếp với containerd hoặc kata, nhưng muốn biết thêm. Nếu được yêu cầu một thứ, tôi muốn có tùy chọn dùng trực tiếp systemd, vì giờ systemd đã có khá đầy đủ các chức năng cần thiết để chạy container
    • Tôi tự hỏi hỗ trợ Kubernetes là nói đến các chức năng giống Kubernetes của Podman, chẳng hạn podman play kube, hay là nói đến chính Kubernetes
    • Dù cuối cùng chưa hoàn thiện, việc ghi tài liệu cho một K8S cơ bản trên Hetzner tốn khoảng 20 euro/tháng, chính xác hơn là cấu hình K3S, khá thú vị
      Qua đó không học sâu được về quản trị hệ thống hay Docker, nhưng có thể có cảm giác dễ dàng chạy nhiều dịch vụ trên server chỉ cần biết YAML, thay vì một DSL riêng như chef hay puppet
  • Trông rất hay, nhưng tôi tò mò hỗ trợ Kubernetes thì thế nào. Một trong những lý do lớn khiến công ty dùng Docker Desktop là để dựng cụm Kubernetes cục bộ và triển khai dịch vụ lên đó
    Rancher Desktop dùng k3s cũng hỗ trợ việc này, và k3s có thể được xem là lựa chọn tốt hơn bản phân phối Kubernetes mà Docker Desktop cấu hình
    Gần đây tôi thử OrbStack, nó khởi động gần như tức thì, Kubernetes cũng chỉ mất tối đa khoảng 2 giây để khởi động. UI tối giản nhưng đủ để kiểm tra container, pod, service, log, v.v.; mức dùng bộ nhớ và tiêu thụ pin cũng rất nhẹ. Cá nhân tôi sau khi dùng OrbStack thì không thể quay lại Docker hay Rancher Desktop nữa
    OrbStack cho phép dùng trực tiếp domain của Kubernetes service từ host, nên không cần kubectl port-forward, và ứng dụng chạy trên host cũng có thể dùng cùng cấu hình như bên trong cụm Kubernetes
    Về tiết kiệm pin, dùng bộ nhớ động, thời gian khởi động nhanh và sự tiện lợi, OrbStack đã trở thành chuẩn mực cho các lựa chọn thay thế Docker Desktop. Tôi không biết container-desktop có đáp ứng hết các yêu cầu này không, còn Rancher Desktop thì chắc chắn là không

    • OrbStack là một trong số ít gói thuê bao phần mềm mà tôi trả tiền, và đáng từng xu. Nó vượt xa Docker Desktop
    • Tôi đã demo OrbStack cho toàn bộ bộ phận có hơn 100 kỹ sư, và giờ chúng tôi đã hủy tài khoản Docker Desktop, tất cả chuyển sang dùng nó. Không có phàn nàn nào cả
    • Cũng đáng xem https://kind.sigs.k8s.io/https://k0sproject.io
  • Tôi đã dùng Rancher Desktop như một lựa chọn thay thế Docker Desktop trên macOS và Windows, và nó khá ổn định: https://rancherdesktop.io/
    Vẫn còn vài phần cần trau chuốt, nhưng tôi cũng có thể kết nối nó với IDE, ví dụ làm cho tích hợp Docker Compose của Intellij IDEA hoạt động
    Một điểm hay nữa là các script hiện có dùng công cụ dòng lệnh docker-compose cũng hoạt động với Rancher Desktop. Vì bên trong nó dùng nerdctl: https://github.com/containerd/nerdctl

    • Rancher Desktop hay ở chỗ Kubernetes cứ thế chạy được. Không chỉ vậy, sau khi tạo image bằng docker build, bạn có thể chạy nó ngay thành Kubernetes pod mà không phải mất 10 phút tìm lệnh để “load” image đúng cách
    • Thêm một phiếu cho Rancher Desktop. Trên MacOS nó chạy mượt như Docker Desktop
    • Tôi đã dùng Rancher Desktop được 2 năm và có thể chắc chắn khuyên dùng nó như một lựa chọn thay thế Docker Desktop
    • Công ty chúng tôi cũng vừa hoàn tất chuyển sang Rancher. Quy mô khoảng 1200 kỹ sư và đa số dùng Mac. Cho đến nay, ít trở ngại hơn dự kiến và chạy khá tốt
    • Tôi thích toàn bộ hệ sinh thái Rancher. Trải nghiệm cấu hình cluster bằng Rancher rất dễ chịu
  • Cũng khuyên nên xem Podman Desktop, được Red Hat hỗ trợ khá tốt
    https://podman-desktop.io/

    • Tôi không biết việc được Red Hat hỗ trợ có phải là điều tốt hay không
  • Nếu dùng macOS thì OrbStack là một lựa chọn thay thế khá ổn cho Docker Desktop
    Tôi không có liên quan gì đến OrbStack

    • Muốn dùng thử, nhưng thật sự ghét mô hình thuê bao. Đặc biệt càng vậy nếu đó là công cụ mà công ty phải trả tiền
      Nếu có thể trả một lần 50–100 USD để nhận giấy phép vĩnh viễn thì tôi sẵn lòng trả và muốn tránh những phiền toái liên quan
    • OrbStack thật sự rất tuyệt. Tôi đang dùng để biên dịch cho tổng cộng 4 nền tảng: Ubuntu/Mac × x86_64/arm, và đây là thứ nhanh nhất trong các loại giả lập/Docker mà tôi từng dùng
    • colima cũng tốt: https://www.swyx.io/running-docker-without-docker-desktop
      Tôi cũng không liên quan gì, và vẫn chưa dùng thử OrbStack
    • Tôi đã chuyển sang OrbStack và cũng đã trả tiền giấy phép. Tôi đồng ý là thuê bao khiến người ta ngán ngẩm, nhưng cảm thấy nó đáng 8 USD/tháng
      Tôi cũng đã dùng Colima, và nếu OrbStack không phải là một lựa chọn thì tôi vẫn hài lòng khi tiếp tục dùng Colima
    • Dùng cá nhân thì tốt. Tuy nhiên cần biết rằng nếu dùng trong công việc thì cần giấy phép
  • Hiện tôi đang dùng colima, nhưng tiếc là chưa tìm được lựa chọn thay thế nào khác hỗ trợ chuyển tiếp cổng UDP, thứ tôi dùng khá nhiều
    May là một port forwarder mới có hỗ trợ UDP đã được merge vào lima [0]. Hy vọng sẽ sớm dùng được khi nó được đưa vào bản phát hành
    [0]: https://github.com/lima-vm/lima/commit/13e9cbcabc6a0a05ec389...

  • Tôi đang dùng OrbStack và rất hài lòng: https://orbstack.dev/
    Nó cũng hỗ trợ Linux VM và Kubernetes, nhưng tôi chưa dùng thử Kubernetes

  • Tôi tò mò không biết cái này cung cấp gì mà Podman Desktop không có
    https://podman-desktop.io/

    • Lần cuối tôi kiểm tra, hỗ trợ docker-compose.yml của Podman rất hạn chế. Không biết giờ đã thay đổi chưa
    • Với tư cách người dùng Windows, tôi cũng tò mò Podman Desktop cung cấp gì mà WSL không có
  • Một phàn nàn hơi tách biệt: Podman cho phép mount từ host trong lúc build image, nhưng Docker thì không
    Một monorepo dùng Podman đã tận dụng tính năng này để tạo container image từ source, nhưng khi cố làm điều tương tự bằng Docker thì lần nào cũng phải sao chép monorepo vào Docker build context, rất đau đầu
    Vì cần hỗ trợ M1 nên phải dùng Docker, nhưng có lẽ đáng ra tôi nên thử thứ gì đó như Colima

    • https://docs.docker.com/reference/dockerfile/#run---mount
    • Có thể tôi nhầm, nhưng có vẻ BuildKit cung cấp tính năng đó cho Docker
    • Nếu là tôi, tôi sẽ bind mount cây thư mục vào trong context. Tôi giả định Docker sẽ không đi theo symlink đơn thuần
  • Trên Mac, tôi nhìn chung hài lòng với Colima, nhưng cái này cũng có vẻ là một lựa chọn thay thế ổn cho Docker Desktop

    • Sau khi ban đầu hơi vất vả với colima, tôi nhìn chung đồng ý. Chủ yếu là phải chỉ định tham số VZ[0] để chạy image Docker x86_64 trên dòng M
      Tôi tò mò các UI desktop kiểu này cung cấp gì mà colima hoàn toàn không có
      [0] colima start --vm-type=vz --vz-rosetta