Quản lý docker đơn giản với Portainer

Phan NhatPhan Nhat
5 min read

Quản lý Docker bằng dòng lệnh có thể trở nên phức tạp và gây khó khăn cho người mới bắt đầu. Nếu bạn đang tìm kiếm một cách dễ dàng để quản lý các container, image và network Docker, Docker Desktop là sự lựa chọn không thể tốt hơn. Tuy nhiên nếu server của bạn không có UI mà quản lý qua CLI thì Portainer là giải pháp lý tưởng. Đây là một công cụ giúp bạn quản lý Docker thông qua giao diện web trực quan. Bài viết này sẽ hướng dẫn bạn cách cài đặt và sử dụng Portainer để quản lý Docker một cách dễ dàng.

Portainer là gì?

Portainer là một nền tảng quản lý container qua giao diện web đơn giản và trực quan. Với Portainer, bạn có thể:

  • Tạo và quản lý container.

  • Theo dõi và kiểm tra thông số hệ thống.

  • Quản lý Docker Swarm hoặc Docker Standalone.

  • Kiểm tra các log của container.

Lợi Ích Của Việc Sử Dụng Portainer

  • Dễ sử dụng: Giao diện trực quan giúp việc quản lý Docker trở nên dễ dàng hơn mà không cần quá nhiều kiến thức dòng lệnh.

  • Quản lý từ xa: Bạn có thể quản lý các máy chủ Docker khác nhau từ một trang quản trị.

  • Tiết kiệm thời gian: Thay vì phải nhớ và gõ nhiều câu lệnh, bạn có thể quản lý thông qua các nút bấm.

  • Giám sát dễ dàng: Bạn có thể theo dõi hiệu suất của container và tài nguyên hệ thống ngay từ bảng điều khiển.

Cài Đặt Portainer

Bước 1: Cài Docker (nếu chưa có)

Nếu bạn chưa cài Docker, hãy thực hiện cài đặt theo link. Ở đây mình sẽ demo trên ubuntu server. Các lệnh tuần tự như sau:

# Thêm Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Thêm repository vào Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# Cài các docker package cần thiết
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Kiểm tra Docker đã được cài chưa
docker --version

# Kiểm tra docker compose
docker compose version
# Thêm user hiện hành vào group docker
sudo usermod -aG docker $USER

# Activate thay đổi cho group
newgrp docker

Hiển thị như ảnh là đã cài thành công rồi nhé

Bước 2: Cài Đặt Portainer

Lưu ý là phiên bản docker/Kubernetes cho mỗi phiên bản Portainer sẽ khác nhau nhé. Kiểm tra tại link. Docker version của mình đang là 27.2.1 nên sẽ có thể cài được bản mới nhất là Portainer Community 2.21.1

Sử dụng lệnh sau để triển khai Portainer

docker volume create portainer_data
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.1

Chờ lệnh chạy xong, kiểm tra container bằng lệnh docker ps:

Như vậy là Portainer đã khơi chạy thành công và có thể truy cập từ trình duyệt qua địa chỉ https://[IP]:9443.

Bước 3: Cấu hình Portainer

Ở lần truy cập đầu tiên, Portainer sẽ yêu cầu người dùng thiết lập tài khoản và mật khẩu. Hãy đổi theo cách bạn muốn

Tiếp theo chọn cách Portainer kết nối đến host. Nếu bạn dùng để quản lý các container ở local hãy chọn option 1, option 2 sẽ để kết nối đến các máy khác trong cùng mạng hoặc các máy remote qua Portainer Agent hoặc Edge Agent tuỳ vào điều kiện mạng. Ở bài này mình sẽ chỉ kết nối đến local.

Ngay sau khi chọn Get Started, ta sẽ nhìn thấy giao diện Dashboard hiện đang có 1 host là local

Có thể thấy Dashboard chứa nhiều thông tin chi tiết như số CPU, dung lượng RAM của host, số container, stack, volumes, images có trên host.

Quản lý Docker trong host

Từ Dashboard trên, chọn local để truy cập vào trang quản lý cho endpoint này.

Ở mục bên trái có rất nhiều tính năng để quản lý:

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

  • Templates: các template mẫu để bạn có thể deploy nhanh chóng hoặc bạn có thể tự custom template của riêng mình.

  • Stack: quản lý các Stack hiện có. Stack Docker là 1 nhóm dịch vụ gồm nhiều container liên kết với nhau (thường được quản lý bằng docker compose)

  • Images: quản lý image hiện có trên host

  • Networks: quản lý các networks đang được sử dụng

  • Volumes: quản lý volume có trên host

  • Events: hiển thị các sự kiện đã xảy ra trên host

Ví dụ như ở đây mình có thể filter các container đang chạy, đã dừng, có thể xoá, thêm sửa rất dễ dàng từ giao diện.

Chúng ta còn có thể xem được statistics của container như RAM sử dụng, CPU sử dụng và thậm chí có thể tuỳ chỉnh được refresh rate

Ngoài ra Portainer còn cho phép thực thi câu lệnh bên trong container một cách dễ dàng.

Giờ mình sẽ thử tạo Gitlab CE từ template của Portainer

Ở đây mình sẽ chỉ set tên cho container và khởi chạy, có rất nhiều advanced option nhưng mình sẽ bỏ qua các option này. Network cho Gitlab mình sẽ để mặc định là bridge.

Chờ một vài phút, chúng ta đã deploy thành công Gitlab CE với vài cú click chuột

Mình sử dụng tính năng console của Portainer để tìm password cho root user

Lời kết

Doneeee, với Portainer việc quản lý các container trở nên dễ dàng hơn bao giờ hết. Từ giờ bạn có thể thoải mái chạy các ứng dụng bằng docker mà không phải ngại việc nhập đi nhập lại các câu lệnh dài và phức tạp nữa!

Bài viết sau mình sẽ hướng dẫn tiếp cách connect các host khác với Portainer server.

0
Subscribe to my newsletter

Read articles from Phan Nhat directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Phan Nhat
Phan Nhat

Cyber Security Engineer