Các container là lựa chọn hoàn hảo khi bạn muốn cô lập các dịch vụ self-hosted mà không phải chịu gánh nặng overhead của máy ảo. Mặc dù Docker CLI là phương pháp lý tưởng để quản lý container, việc chạy các lệnh cho những thao tác đơn giản đôi khi có thể gây mệt mỏi. Docker Desktop là một tùy chọn chấp nhận được, nhưng chức năng của nó còn khá cơ bản.
Đó là lúc Portainer phát huy tác dụng với khả năng quản lý container vượt trội. Cho dù bạn là người mới bắt đầu với “home lab” hay một “lão làng” dày dặn kinh nghiệm self-hosting, đây là hướng dẫn chi tiết giúp bạn triển khai Portainer trên máy chủ gia đình của mình.
Portainer Là Gì Và Tại Sao Bạn Nên Sử Dụng Nó?
Giao diện web trực quan của Portainer
Giao diện quản lý Network trong Portainer
Với những người chưa quen, Portainer cung cấp một giao diện web (GUI) trực quan giúp bạn quản lý các dịch vụ được container hóa. Thay vì đóng vai trò như một môi trường chạy container (container runtime environment) như Docker, Portainer mở rộng chức năng của Docker (và cả Podman) bằng cách cho phép bạn triển khai, giám sát và khắc phục sự cố các container mà không cần dùng đến các lệnh terminal.
Portainer không chỉ hữu ích cho người mới mà còn cực kỳ tiện dụng cho người dùng nâng cao, vì bạn có thể truy cập các cài đặt về image, network, xác thực người dùng và registry từ giao diện người dùng tiện lợi của nó. Hơn nữa, nó hỗ trợ Kubernetes và Docker Swarm, biến nó thành lựa chọn hoàn hảo để quản lý các stack container trong một cluster sử dụng Swarm.
Triển Khai Một Instance Portainer
Vì bản thân Portainer cũng chạy dưới dạng một Docker container, bạn sẽ cần môi trường chạy container (Docker) được cài đặt sẵn trên máy của mình. Giả sử bạn đang sử dụng một bản phân phối Linux:
-
Mở ứng dụng terminal tích hợp sẵn trong hệ điều hành của bạn.
-
Tạo bộ nhớ lưu trữ bền vững (persistent storage) cho máy chủ Portainer của bạn bằng lệnh sau:
sudo docker volume create portainer_data
Lệnh tạo persistent storage cho Portainer trong Docker
-
Thực thi lệnh docker run để triển khai container Portainer:
sudo docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:2.21.5
Triển khai container Portainer bằng Docker
Truy Cập Giao Diện Web Portainer (UI)
Khi container Portainer đã được khởi chạy thành công, đã đến lúc truy cập giao diện web của nó. Để thực hiện:
-
Nhập địa chỉ IP của máy tính đang chạy Portainer, theo sau là dấu hai chấm (:) và số cổng 9443 vào trình duyệt web của bạn.
Truy cập giao diện web Portainer qua trình duyệt
Nếu bạn đang sử dụng cùng một máy tính, bạn có thể thay thế địa chỉ IP bằng chuỗi localhost. Vì Portainer tự động tạo chứng chỉ SSL cho container, bạn sẽ phải sử dụng giao thức https thay vì http thông thường.
-
Nhập một Mật khẩu cho máy chủ Portainer của bạn và nhấn Create User (Tạo người dùng).
Thiết lập mật khẩu người dùng Portainer
-
Docker node cục bộ của bạn (nơi đang chạy máy chủ Portainer) sẽ hiển thị dưới tab Environments (Môi trường), và bạn có thể liên kết nó với giao diện Portainer bằng cách nhấp vào nút Live connect (Kết nối trực tiếp).
Kết nối với Docker node cục bộ trong Portainer
Mẹo Sử Dụng Portainer Chuyên Nghiệp Để Quản Lý Container
Nếu bạn là người mới làm quen với Portainer, dưới đây là một số mẹo giúp bạn quản lý container như một chuyên gia:
-
Tab Containers sẽ hiển thị Trạng thái, Image, Địa chỉ IP, Số cổng và các thống kê khác về dịch vụ của bạn, tương tự như kết quả khi chạy lệnh docker container ls.
Quản lý các container đang chạy trong Portainer
-
Bạn có thể nhấp vào nút New Container (Container mới) trong tab này và thêm Tên và Image cho dịch vụ bạn muốn triển khai dưới dạng container.
Thêm container mới trong Portainer
Đừng quên chỉ định các cổng TCP/UDP cho container.
-
Trong khi đó, tab Images cho phép bạn kéo các image từ Docker Hub, mặc dù bạn cũng có thể tự xây dựng image của riêng mình nếu quen thuộc với cú pháp Dockerfile.
Quản lý Image trong Portainer
-
Nếu bạn muốn một cách đơn giản để tự host các ứng dụng, bạn có thể truy cập các mẫu container (container templates) trong mục Templates.
Sử dụng Container Templates trong Portainer
Giống như image, bạn cũng có thể chỉ định các mẫu container của riêng mình trong Portainer.
-
Tab liên quan đến Environment (Môi trường) dưới phần Administration (Quản trị) rất hữu ích khi bạn muốn liên kết các instance Docker, Kubernetes, Docker Swarm hoặc ACL khác với giao diện Portainer của mình.
Quản lý Environment (môi trường) trong Portainer
-
Nếu bạn muốn cấp phát bộ nhớ lưu trữ bền vững (persistent storage) cho các container của mình, bạn có thể thực hiện điều đó trong tab Volume.
Quản lý Volume (lưu trữ) cho container trong Portainer
-
Cuối cùng, tab Network cho phép bạn tinh chỉnh các mạng ảo cho container của mình và đặc biệt hữu ích khi bạn muốn các dịch vụ của mình giao tiếp với nhau.
Quản lý và thêm Network mới trong Portainer
Tối ưu hóa quản lý container với giao diện đơn giản của Portainer
Ngoài các tùy chọn đã được nhấn mạnh ở trên, có nhiều tab, menu và cài đặt khác mà bạn có thể điều chỉnh để nâng cao khả năng quản lý container của mình trong Portainer. Chẳng hạn, phần Activity cực kỳ hữu ích khi bạn muốn khắc phục sự cố một container bị lỗi, trong khi tab Edge Compute dành cho những người dùng cao cấp muốn tích hợp các thiết bị biên (edge devices) vào trung tâm container của họ.
Hạn chế duy nhất của Portainer là phiên bản cộng đồng miễn phí cung cấp chức năng hạn chế trong các thiết lập Kubernetes. Tuy nhiên, nếu bạn chỉ tìm kiếm một giao diện web dễ sử dụng để quản lý một vài môi trường Docker cục bộ, Portainer sẽ là lựa chọn tuyệt vời và không gây ra bất kỳ vấn đề nào.