- Portainer là một giao diện đồ họa dựa trên web giúp tập trung quản trị Docker, Kubernetes và Swarm mà không cần phụ thuộc hoàn toàn vào giao diện dòng lệnh.
- Nó cho phép triển khai các ứng dụng bằng cách sử dụng các mẫu và quản lý trực quan các volume, mạng và stack của Compose.
- Việc cài đặt có thể được thực hiện bằng các lệnh Docker trực tiếp hoặc thông qua các tệp cấu hình YAML để kiểm soát tốt hơn.
Nếu bạn đã từng thử sức với việc tự lưu trữ máy chủ, dù là thiết lập máy chủ tại nhà trên Raspberry Pi, NAS hay máy tính chuyên dụng, bạn sẽ biết rằng Docker là một công cụ mạnh mẽ . Tuy nhiên, việc liên tục phải thao tác với terminal có thể trở nên khá tẻ nhạt, đặc biệt khi bạn bắt đầu chạy hàng chục container cùng lúc. Đây là lúc Portainer phát huy tác dụng, một giao diện đồ họa dựa trên web cho phép bạn ngừng gõ những lệnh vô tận và bắt đầu quản lý mọi thứ chỉ với một vài cú nhấp chuột.
Về cơ bản, Portainer hoạt động như một bảng điều khiển thống nhất. Nó không phải là một bản phân phối Kubernetes, mà là phần mềm mã nguồn mở giúp tập trung quản lý cơ sở hạ tầng hiện có. Cho dù bạn sử dụng phiên bản Cộng đồng (CE) miễn phí hay phiên bản doanh nghiệp trả phí, mục tiêu đều giống nhau: giúp việc triển khai, cấu hình và khắc phục sự cố ứng dụng trở nên trực quan và dễ hiểu hơn đối với mọi người, từ các chuyên gia DevOps đến những người đam mê tự làm mọi thứ.
Nhiều người thắc mắc liệu giao diện đồ họa người dùng (GUI) có thực sự cần thiết khi chúng ta đã có giao diện dòng lệnh (terminal). Câu trả lời ngắn gọn là, đối với việc sử dụng hàng ngày, nó vô cùng tiện lợi. Trong khi Docker là một giải pháp ảo hóa nhẹ sử dụng nhân Linux để cô lập các tiến trình mà không cần đến máy ảo phức tạp, Portainer lại cung cấp cho chúng ta khả năng hiển thị tức thời về tài nguyên . Bạn có thể dễ dàng thấy được container nào đang hoạt động tốt, container nào bị lỗi và chúng đang tiêu thụ bao nhiêu CPU hoặc RAM mà không cần phải chạy các lệnh kiểm tra phức tạp.
Một trong những tính năng mạnh mẽ nhất của nó là khả năng quản lý các stack Docker Compose , cho phép bạn khởi chạy nhiều dịch vụ được kết nối với nhau bằng một tệp YAML duy nhất. Nó cũng đơn giản hóa việc quản lý các ổ đĩa lưu trữ dữ liệu và mạng ảo , ngăn bạn vô tình xóa dữ liệu quan trọng khi gỡ bỏ container. Đối với những người mới học, đây là công cụ hoàn hảo vì nó cho phép bạn thử nghiệm với các mẫu được định sẵn , triển khai các dịch vụ phổ biến chỉ trong vài giây.
Cài đặt trên máy chủ NAS và môi trường gia đình
Nếu bạn sở hữu thiết bị NAS từ các thương hiệu như Synology, QNAP hoặc Asustor, bạn thật may mắn. Trên các thiết bị này, Docker thường được cài đặt sẵn từ cửa hàng ứng dụng của nhà sản xuất (ví dụ, trên QNAP, nó được gọi là Container Station ). Sau khi cài đặt Docker engine, bạn có thể triển khai Portainer. Mặc dù một số thiết bị NAS đã tích hợp sẵn tính năng này, nhưng việc triển khai thông qua SSH vẫn phổ biến hơn.
Để cài đặt nó thông qua dòng lệnh trong các môi trường này, người ta thường sử dụng lệnh sau: docker runViệc ánh xạ socket Docker là rất cần thiết (/var/run/docker.sock) để Portainer có thể giao tiếp với máy chủMột chi tiết quan trọng trong một số hệ thống như Asustor là lỗi quyền truy cập có thể xảy ra; trong trường hợp đó, hãy chạy lệnh sau: sudo chmod 666 /var/run/docker.sock Điều này thường giải quyết vấn đề bằng cách cho phép container truy cập vào socket mà không bị hạn chế.
Triển khai nâng cao với Docker Compose
Đối với những ai muốn có một thiết lập chuyên nghiệp và dễ bảo trì hơn, giải pháp lý tưởng là sử dụng tệp. compose.yamlKhác với các hướng dẫn cũ, việc bao gồm khóa phiên bản không còn cần thiết nữa, vì đặc tả kỹ thuật hiện đại đã bỏ qua nó. Điều này được khuyến nghị mạnh mẽ. ghim hình ảnh vào một phiên bản cụ thể (ví dụ: 2.40.0) thay vì sử dụng nhãn latestNhờ đó, ngăn chặn việc cập nhật tự động làm hỏng các cài đặt của bạn.
Một ví dụ về cấu hình mạnh mẽ bao gồm việc sử dụng các ổ đĩa có tên là portainer_dataĐiều này rất quan trọng vì toàn bộ trạng thái ứng dụng (người dùng, điểm cuối và cấu hình) đều nằm trong thư mục này. /data của container. Nếu bạn sử dụng bind-mount tạm thời và xóa nó, bạn sẽ mất toàn bộ instance. Ngoài ra, nên gắn socket Docker vào... chế độ chỉ đọc (:ro)Bởi vì Portainer kiểm soát mọi thứ thông qua API và không cần ghi trực tiếp vào socket hệ thống máy chủ.
Hướng dẫn bắt đầu và thiết lập bảo mật
Sau khi container được khởi chạy, bạn thường có thể truy cập nó qua cổng 9443 (HTTPS) hoặc 9000 (HTTP) bằng cách nhập địa chỉ IP của máy chủ vào trình duyệt. Lần đầu tiên đăng nhập, hệ thống sẽ yêu cầu bạn tạo một người dùng quản trị với mật khẩu mạnh. Lưu ý rằng quá trình thiết lập ban đầu này có thời gian chờ 5 phút ; nếu bạn vượt quá thời gian này, bạn cần khởi động lại container để thử đăng nhập lại.
Trong môi trường sản xuất, việc để Portainer tiếp xúc trực tiếp với internet tiềm ẩn nhiều rủi ro. Tốt nhất là nên đặt nó phía sau một... proxy ngược như TraefikBằng cách này, bạn có thể Tích hợp Docker, Traefik và Portainer thành một hệ thống hoàn chỉnh. Để quản lý chứng chỉ TLS của Let's Encrypt và chuyển hướng lưu lượng truy cập đến cổng nội bộ 9000 của Portainer, cho phép bạn truy cập thông qua một tên miền chuyên nghiệp (chẳng hạn như...) portainer.tuweb.commà không cần phải mở các cổng lạ trong tường lửa của bạn.
Quản lý container và điểm cuối từ xa
Trong bảng điều khiển, môi trường 'cục bộ' là nơi mọi thứ diễn ra. Từ đây, bạn có thể tải hình ảnh từ Docker Hub , tạo container từ đầu hoặc quản lý mạng và volume. Một trong những tính năng hữu ích nhất là truy cập vào bảng điều khiển container , cho phép bạn vào terminal của bất kỳ ứng dụng nào đang chạy mà không cần rời khỏi trình duyệt.
Nhưng Portainer không chỉ giới hạn ở một máy chủ duy nhất. Sử dụng Edge Agent , bạn có thể kết nối nhiều nút từ xa với một phiên bản Portainer trung tâm duy nhất. Agent là một container nhẹ mà bạn cài đặt trên các máy chủ khác và nó sẽ mở một đường hầm đi ra máy chủ chính, cho phép bạn quản lý Docker Swarm và Portainer Edge để điều khiển các cụm Swarm hoặc Kubernetes từ một điểm điều khiển duy nhất, bất kể vị trí vật lý của các máy.
Portainer thay đổi hoàn toàn trải nghiệm Docker, chuyển từ việc quản lý dựa trên terminal rườm rà sang một hệ sinh thái trực quan, nơi việc kiểm soát image, stack và volume trở nên dễ dàng hơn. Cho dù cài đặt bằng một lệnh nhanh hay thiết lập một môi trường chuyên nghiệp với Compose và Traefik, công cụ này đảm bảo việc quản lý container hiệu quả, có khả năng mở rộng và trên hết là dễ tiếp cận hơn nhiều đối với bất kỳ người dùng nào.





