Quản Lý Docker Dễ Dàng Hơn Với Portainer

Portainer là một công cụ giúp dễ dàng quản lý docker container, host và docker swam qua giao diện UI. Người dùng có thể quản lý Docker stack, containe

Sau khi cài đặt Docker, chúng ta đã có thể triển khai ứng dụng bằng lệnh docker run hoặc docker-compose up. Tuy nhiên, việc quản lý Docker bằng dòng lệnh command line là một cực hình đối với những bạn mới. Để giải quyết vấn đề này, chúng ta có thể sử dụng các công cụ Docker GUI để quản lý Docker hiệu quả hơn.

Bài viết này mình sẽ hướng dẫn cách cài đặt và sử dụng Portainer – một trong những công cụ Docker GUI phổ biến nhất – để quản lý Docker container.

Portainer là một công cụ giúp dễ dàng quản lý docker container, host và docker swam qua giao diện UI. Người dùng có thể quản lý Docker stack, container, image, volume, network,.. trực tiếp thông qua giao diện web của Portainer mà không phải vất vả nhớ các câu lệnh; ngoài ra, việc sửa lỗi cũng dễ dàng, trực quan hơn.

Đối với mình, ưu điểm chính của Portainer là mình có thể cài đặt các ứng dụng Docker một cách nhanh chóng. Khi không còn nhu cầu sử dụng, có thể tạm ngưng và xoá bỏ ngay. Chẳng cần phải nhớ bất kỳ dòng lệnh nào của Docker. Cũng chẳng cần phải hiểu rõ về nguyên lý hoạt động của Docker. Chỉ bấm bấm vài nút là xong.

Yêu Cầu Hệ Thống

Bản thân Portainer là một Docker container, do đó thiết bị của bạn cần được cài đặt Docker và Docker Compose trước. Bạn có thể kiểm tra xem Docker và Docker Compose đã được cài đặt trên máy chưa bằng cách sử dụng lệnh.

Kiểm tra xem Docker Compose đã được cài đặt chưa:

docker --version # Kiểm tra Docker đã được cài chưa
docker-compose --version # Kiểm tra Docker Compose đã được cài chưa

Nếu báo lỗi command not found nghĩa là máy chưa có sẵn.

Tham khảo bài viết dưới đây để biết cách cài Docker và Docker Compose:

Hướng Dẫn Cài Đặt Docker, Docker Compose Trên Linux (Armbian/Ubuntu/Debian/…)

Ngoài ra, bạn cần phải có quyền truy cập root hoặc sudo trên máy để có thể cài đặt Portainer

Cài đặt Portainer

Sử dụng lệnh sau để triển khai Portainer trên Linux (Ubuntu 20.04, CentOS 7, Debian,…)

docker volume create portainer_data
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

Đợi vài phút để Docker pull Potainer image về máy và cài đặt

Unable to find image 'portainer/portainer-ce:latest' locally
latest: Pulling from portainer/portainer-ce
651a8e6e1630: Pull complete
56e38df73332: Pull complete
39a20fc5eb57: Pull complete
Digest: sha256:e50acb22caeaa0f7256eabdd05eeb707e67326bc89abac59eeed0b4c02cc93a3
Status: Downloaded newer image for portainer/portainer-ce:latest
14c3103b9b9e3b7f525d7e79f4e55008d8a230850855b6d82b1af50690a568c7

Sau khi cài đặt xong, mở trình duyệt truy cập vào địa chỉ sau để thiết lập Portainer

http://<IP-Address>:9000

Trong đó <IP-Address> là địa chỉ IP hiện tại của máy. Nếu không biết bạn có thể kiểm tra bằng lệnh

ifconfig

Hoặc bạn có thể cài đặt bằng Docker-Compose

# docker-compose.yml 
version: '3.9'

services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./portainer-data:/data
    ports:
      - 9000:9000

Cấu hình Portainer

Ở lần truy cập đầu tiên, Portainer sẽ yêu cầu thiết lập tài khoản và mật khẩu. Bạn nên đổi username admin thành bất kỳ tên gì khác để tăng tính bảo mật.

Thiết lập tài khoản quản lý Portainer
Thiết lập tài khoản quản lý Portainer

Tiếp theo, chọn cách thức để Portainer kết nối đến host. Ở đây mình dùng Portainer để quản lý Docker trên local nên chọn Docker, sau đó bấm Connect

Chọn Docker và bấm Connect
Chọn Docker và bấm Connect

Sau khi đăng nhập, chúng ta sẽ nhìn thấy giao diện Dashboard của Portainer như hình bên dưới.

Giao diện Dashboard của Portainer
Giao diện Dashboard của Portainer

Bạn có thể thấy được endpoints local dã được kết nối thành công. Kèm theo đó là các thông tin liên quan đến host (local) đang hoạt động:

  • Số lượg stack: 0.
  • Số lượng container: 1
  • Số lượng volume: 1
  • Số lượng image: 1

Ở mục bên trái có các mục thiết lập nâng cao như Users, Endpoints, Registries, Setting để tinh chỉnh Portainer. Không cần quan tâm đến các mục này làm gì.

Quản lý Docker của 1 endpoint

Từ Dashboard, bấm vào endpoint local để truy cập trang quản lý Docker của host

Dashboard
Dashboard: hiển thị thông tin tổng quát về tình trạng tài nguyên hiện có của Docker trên host.

Portainer hỗ trợ khá đầy đủ tính năng để bạn có thể quản lý thông tin của Docker

  • Dashboard: hiển thị thông tin tổng quát về tình trạng tài nguyên hiện có của Docker trên host.
  • App Templates: Danh sách các template mẫu để triển khai ứng dụng một cách nhanh chóng.
  • Stacks: Cho phép tạo / xoá các stack Docker bằng docker-compose file
  • Containers: Hiển thị thông tin chi tiết tình trạng các container hiện có trên host. Bạn có thể thay đổi trạng thái hoạt động hoặc xem log của container trực tiếp từ trang này.
  • Images: Hiển thị thông tin các image hiện có trên host. Có thể xoá các image không sử dụng (có nhãn Unused)
  • Networks: Hiển thị danh sách các network hiện có trên host. Có thể thêm / xoá network.
  • Volumes: Hiển thị danh sách các volume hiện có trên host. Có thể thêm / xóa các volume.
  • Events: Hiển thị log các sự kiện đã diễn ra trên Docker host.
App Templates
App Templates có sẵn rất nhiều các ứng dụng phổ biến để bạn có thể triển khai chỉ bằng vài nút bấm.

Tổng Kết

Đối với các dự án nhỏ không cần sử dụng quá nhiều services hay container docker thì bạn không nhất thiết phải cài đặt portainer để quản lý, vẫn hoàn toàn có thể sử dụng command line để quản lý cho chuyên nghiệp. Tuy nhiên, Portainer vẫn là sự lựa chọn lý tưởng cho những người không am hiểu sâu về lập trình.

Hiện tại, mình đang dùng Portainer để quản lý các ứng dụng sau, các bạn có thể tìm hiểu cài đặt làm quen trên máy của mình.

  • Adguard Home: Chặn quảng cáo bằng DNS cho toàn bộ mạng nội bộ trong nhà

Hy vọng rằng qua bài viết này, các bạn đã có thêm thông tin về một công cụ hữu ích để quản lý docker apps. Rất mong nhận được những đóng góp và thảo luận từ phía các bạn.

Đăng nhận xét