Tại sao tôi bỏ Docker-CLI và chuyển sang Portainer

Tác giả Starlink, T.Sáu 08, 2025, 01:50:39 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Tôi thích Linux terminal, nhưng có nhiều cách tốt hơn để quản lý vùng chứa Docker của bạn.

Bạn có thấy chán khi sử dụng terminal để quản lý các container Docker của mình không? Tôi đã chán, và đó là lúc tôi tìm thấy Portainer. Nó cung cấp một giao diện dễ sử dụng để quản lý các container Docker. Thêm vào đó, nó thậm chí còn hoạt động trong các thiết lập có tính khả dụng cao.


1. Tại sao tôi không muốn sống trong một nhà ga

Mặc dù tôi không bắt đầu với Docker-CLI (tôi bắt đầu sử dụng Docker trong Unraid), tôi đã có khá nhiều kinh nghiệm với nó. Tôi có thể đánh giá cao những lợi ích của việc sử dụng terminal, vì nó có thể không lộn xộn và các kỹ năng thường có thể chuyển giao giữa các hệ điều hành. Tuy nhiên, tôi thấy rằng việc quản lý các container Docker của tôi trong môi trường terminal không hề thú vị hoặc đơn giản.


Với Docker-CLI, mọi thứ đều dựa trên terminal. Sự nhất quán duy nhất là terminal, và mọi thứ đều yêu cầu lệnh. Tôi biết, tôi có thể nghe thấy bạn hét vào màn hình của mình, "Đó là mục đích!" Tuy nhiên, tôi thực sự nghĩ rằng đôi khi một UI đẹp có thể hữu ích.

Với kinh nghiệm chính của tôi khi sử dụng Docker dựa trên Unraid, tôi đã quen với việc có giao diện người dùng phù hợp để bắt đầu và dừng container, khởi động lại container, thực hiện điều chỉnh mà không cần phải viết lại lệnh, v.v. Vì vậy, khi tôi có kế hoạch di chuyển khỏi máy chủ Unraid của mình cho Docker sang máy chủ ứng dụng chuyên dụng, tôi biết mình cần một giải pháp khác ngoài Docker-CLI.

2. Portainer cung cấp giao diện người dùng thân thiện với tất cả các cài đặt Docker

Nếu bạn chưa từng nghe đến Portainer, thì thực ra nó là một container Docker. Portainer kết nối vào sock của Docker, đây là một tệp đặc biệt cho phép nó giao tiếp với công cụ Docker và quản lý container của bạn.


Sau khi bạn đã cài đặt Portainer bên trong Docker instance của mình, nó sẽ mở giao diện người dùng web để bạn sử dụng để quản lý các container Docker của mình. Theo mặc định, giao diện người dùng web có thể truy cập được trên cổng 9443 (cổng 8000 cũng được mở nhưng không được sử dụng cho bất kỳ giao diện web nào).

Giao diện web nằm sau chứng chỉ SSL, ban đầu là chứng chỉ tự ký. Tôi đặt phiên bản Portainer của mình sau proxy ngược để loại bỏ lỗi SSL, nhưng chỉ cần nhấp vào là bạn chấp nhận rủi ro vì bạn hiểu rằng đó là chứng chỉ tự ký.

Trên thực tế, bạn có thể sử dụng Portainer để quản lý cả container Docker hiện có và mới. Nó không thể tự chỉnh sửa (nếu không thực hiện một số thay đổi đối với tệp cấu hình) nhưng Portainer có thể kiểm soát mọi thứ khác về môi trường Docker của bạn thông qua giao diện dễ sử dụng.

Đây chính là lý do tại sao tôi quyết định sử dụng Portainer. Tôi thực sự không muốn sống trong Docker-CLI và giao diện terminal, vì tôi muốn thứ gì đó thân thiện với người dùng hơn. Portainer đã cung cấp cho tôi chính xác những gì tôi đang tìm kiếm và chỉ mất vài phút để thiết lập và chạy.

3. Portainer có thể được sử dụng kết hợp với Docker-CLI

Vì Portainer kết nối với Docker sock chính nên có thể sử dụng cùng lúc với Docker-CLI. Có nhiều lần tôi không thể tìm ra điều gì đó trong Portainer nên tôi đã chuyển sang Docker-CLI để sửa.


Mỗi lần tôi làm như vậy, nó đều hoạt động tốt. Cuối cùng tôi đã tìm ra cách quản lý những thứ như mạng, khối lượng và nhiều thứ khác trong Portainer, điều đó có nghĩa là tôi không phải quay lại Docker-CLI nữa. Tuy nhiên, có thể sửa đổi một container trong Docker-CLI và Portainer cùng một lúc là khá tuyệt, xét về mọi mặt.

Điều này cũng có nghĩa là bạn có thể sử dụng Portainer như một bước đệm nếu mục tiêu của bạn là di chuyển hoàn toàn sang Docker-CLI. Nó cũng hoạt động theo cách khác nếu bạn muốn di chuyển khỏi việc sử dụng terminal cho mọi thứ, nhưng đã quen thuộc với cách chạy Docker-CLI. Vì tôi đến từ một giao diện web Docker khác, thật tuyệt khi tôi không phải học Docker-CLI để chạy mọi thứ và tôi cũng có thể chuyển đổi dễ dàng sang Portainer.

4. Portainer cung cấp cả triển khai Docker Run và Docker Compose

Trên mạng, bạn có thể sẽ không tìm thấy nhiều hướng dẫn cụ thể của Portainer về việc triển khai các container Docker. Chúng có tồn tại đối với một số container, nhưng hầu hết các hướng dẫn mà bạn bắt gặp sẽ dành cho Docker-CLI hoặc Docker Compose. Thành thật mà nói, đây là một cú sốc nhỏ đối với tôi. Đến từ Unraid, nơi có các hướng dẫn cụ thể cho nhiều container Docker, Portainer chỉ cho rằng bạn biết cách tự thiết lập mọi thứ.


Rất may là tôi có kinh nghiệm trước đó với Linux và terminal, vì tôi có thể dịch hướng dẫn Docker Run hoặc Docker Compose sang cơ chế triển khai chuẩn của Portainer. Cách chuẩn để thêm một container duy nhất vào Portainer là sử dụng một giao diện người dùng được cân nhắc kỹ lưỡng để nhập mọi thứ vào. Việc dịch các lệnh hiện có sang giao diện đó cũng khá dễ dàng.

Tuy nhiên, nếu bạn muốn tiếp tục sử dụng Docker Compose, thì đó chính là lúc Portainer's Stacks xuất hiện. Stacks chỉ đơn giản là một giao diện cho Docker Compose. Tôi có một vài thứ đang chạy trong Stacks—chủ yếu là các container khó tách biệt vì cách Docker xử lý mạng và giao tiếp giữa các container.

Tôi cố gắng tránh Stacks khi có thể vì những container đó không giao tiếp tốt với các container khác không được khởi chạy như một phần của Stack. Mỗi Stack mà bạn khởi chạy có thể dễ dàng giao tiếp trong chính nó, tạo ra sự giao tiếp chéo giữa nhiều cơ sở dữ liệu và một kỳ công đơn giản như vậy. Vì vậy, đối với một số dịch vụ nhất định (như Immich), tôi sử dụng Stacks. Tôi cố gắng khởi chạy hầu hết mọi thứ khác một cách độc lập, mặc dù theo cách đó, đối với tôi, nó chỉ đơn giản hơn.

Nếu bạn chọn sử dụng Stacks, mỗi container được khởi chạy đều có sẵn trong chế độ xem container chuẩn trong Portainer. Ở đó, bạn có thể sửa đổi các khía cạnh của từng container mà không cần phải khởi chạy lại toàn bộ stack. Chỉ cần biết rằng nếu bạn khởi chạy lại toàn bộ Stack tại một thời điểm nào đó, nó sẽ trở lại thiết lập ban đầu chứ không phải bất kỳ thứ gì bạn đã sửa đổi trong chế độ xem container.

5. Portainer cung cấp các thiết lập đơn giản có tính khả dụng cao

Mặc dù tôi chưa thử nghiệm, nhưng Portainer thực sự làm cho Docker có tính khả dụng cao trở nên khá đơn giản. Nó tận dụng Docker Swarm cho mục đích này và cho phép bạn triển khai nhiều máy chủ có thể chạy nhiều loại container khác nhau của bạn. Đây thực sự là một trong những lý do chính khiến tôi chọn Portainer. Cuối cùng, tôi muốn di chuyển các dịch vụ của mình khỏi máy chủ gắn trên giá đỡ lớn, ngốn điện mà chúng đang sử dụng và sử dụng một vài máy tính mini trong thiết lập có tính khả dụng cao. Việc học Portainer hiện đã chuẩn bị cho tôi điều này.

Nếu bạn chưa từng nghe đến tính khả dụng cao trước đây, thuật ngữ này đề cập đến một thiết lập yêu cầu ít nhất ba máy tính hoặc máy chủ để chạy. Lý tưởng nhất là tất cả chúng đều có thông số kỹ thuật tương tự và có khả năng tương tự.

Trong môi trường có tính khả dụng cao, khi một máy chủ ngừng hoạt động, hai máy chủ còn lại sẽ tiếp nhận tải. Tất cả đều diễn ra tự động ở chế độ nền và có nghĩa là bạn có thể phục vụ máy chủ với thời gian ngừng hoạt động ít hoặc không có.

Bất cứ khi nào máy chủ bị sập đó hoạt động trở lại, nó sẽ được thêm lại vào cụm khả dụng và hiện là một phần của dự phòng dịch vụ của bạn. Mặc dù ba máy chủ là tối thiểu, nhưng về mặt lý thuyết, bạn có thể có nhiều máy chủ tùy thích cho các dịch vụ siêu dự phòng.

Trong một cụm có tính khả dụng cao, bạn cũng có thể chỉ định dịch vụ cụ thể nào có thể chạy trên đó. Ví dụ, nếu bạn chỉ có hai trong ba máy chủ có thể chuyển mã, thì bạn có thể yêu cầu vùng chứa Plex của mình chỉ chạy trên hai máy chủ đó.

Tuy nhiên, nếu bạn thiết lập Plex chỉ chạy trên một máy chủ cụ thể, vì đó là máy chủ duy nhất có khả năng chuyển mã, và bạn đưa máy chủ đó ngoại tuyến, thì Plex sẽ tự động ngoại tuyến vì không có ứng viên phù hợp nào để di chuyển đến.

Sau khi bạn đã cài đặt và chạy Portainer, hãy xem 10 Docker container mà tôi tin rằng mọi homelabber nên chạy. Từ những thứ đơn giản như Homepage đến Home Assistant, Tautulli và nhiều hơn nữa, danh sách này có thứ gì đó dành cho mọi người.