Cài Portainer trên VPS Ubuntu: Dễ hiểu cho người mới mua server

P P T P Chung

Cài Portainer trên VPS Ubuntu: hướng dẫn tối ưu cho người mới mua server

Bạn vừa mua VPS Ubuntu. Đăng nhập SSH thành công. Màn hình terminal đen sì. Câu hỏi tiếp theo: quản lý Docker, container, volume, network thế nào cho dễ?

Câu trả lời thực tế: Portainer.

Portainer là giao diện web giúp quản lý Docker trực quan. Thay vì nhớ nhiều lệnh CLI, bạn có thể tạo container, xem log, restart service, quản lý image, volume, network qua trình duyệt. Với người mới mua server, Portainer giúp giảm lỗi thao tác, dễ quan sát hệ thống, tiết kiệm thời gian.

Bài này hướng dẫn cài Portainer trên VPS Ubuntu theo cách gọn, an toàn, dễ bảo trì.


Portainer là gì? Vì sao nên cài trên VPS mới?

Portainer là công cụ quản trị Docker qua web UI. Nó không thay Docker, mà chạy bên trên Docker để điều khiển container.

Bạn nên dùng Portainer nếu:

– Mới dùng VPS, chưa quen Docker CLI. – Muốn xem container đang chạy qua giao diện. – Muốn deploy app nhanh. – Muốn quản lý volume, image, network dễ hơn. – Muốn theo dõi log, restart service không cần gõ nhiều lệnh. – Chạy nhiều app trên cùng VPS: Nginx Proxy Manager, n8n, WordPress, database, Redis, monitoring.

Portainer đặc biệt hữu ích khi bạn bắt đầu tự host dịch vụ. Một VPS nhỏ 1-2GB RAM vẫn dùng được, miễn cấu hình hợp lý.


Yêu cầu trước khi cài

VPS khuyến nghị

Tối thiểu:

– Ubuntu 20.04 / 22.04 / 24.04 – 1 vCPU – 1GB RAM – 10GB SSD – Quyền root hoặc user có sudo

Khuyến nghị:

– 2GB RAM trở lên – IP public cố định – Domain riêng nếu muốn dùng HTTPS đẹp – Firewall bật, chỉ mở port cần thiết

Port cần biết

Portainer thường dùng:

9443: giao diện HTTPS mặc định – 9000: HTTP cũ, không khuyến nghị public – 8000: Edge Agent, thường không cần nếu chỉ dùng 1 VPS

Với người mới: dùng 9443.


Bước 1: Đăng nhập VPS qua SSH

Trên máy cá nhân, chạy:

ssh root@YOUR_SERVER_IP

Nếu dùng user khác:

ssh username@YOUR_SERVER_IP

Cập nhật hệ thống:

sudo apt update && sudo apt upgrade -y

Cài công cụ cơ bản:

sudo apt install -y ca-certificates curl gnupg lsb-release ufw

Bước 2: Cài Docker đúng cách trên Ubuntu

Portainer chạy bằng Docker. Vì vậy cần cài Docker trước.

Thêm Docker GPG key

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | 
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

Thêm Docker repository

echo 
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] 
https://download.docker.com/linux/ubuntu 
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | 
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Cập nhật apt:

sudo apt update

Cài Docker Engine

sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Kiểm tra Docker:

docker --version

Chạy thử:

sudo docker run hello-world

Nếu thấy thông báo “Hello from Docker!” → Docker hoạt động.


Bước 3: Cho user hiện tại dùng Docker không cần sudo

Nếu bạn dùng root, có thể bỏ qua. Nếu dùng user thường:

sudo usermod -aG docker $USER

Đăng xuất SSH rồi đăng nhập lại:

exit

SSH lại. Kiểm tra:

docker ps

Nếu không lỗi permission → OK.

Lưu ý: user trong group docker gần tương đương quyền root. Chỉ cấp cho user tin cậy.


Bước 4: Cài Portainer CE

Tạo volume lưu dữ liệu Portainer:

docker volume create portainer_data

Chạy Portainer Community Edition:

docker run -d 
  -p 9443:9443 
  --name portainer 
  --restart=always 
  -v /var/run/docker.sock:/var/run/docker.sock 
  -v portainer_data:/data 
  portainer/portainer-ce:latest

Giải thích nhanh:

-d: chạy nền – -p 9443:9443: mở web Portainer qua port 9443 – --restart=always: VPS reboot → Portainer tự chạy lại – /var/run/docker.sock: cho phép Portainer quản lý Docker host – portainer_data:/data: lưu cấu hình, user, endpoint

Kiểm tra container:

docker ps

Bạn sẽ thấy container portainer đang chạy.


Bước 5: Mở firewall an toàn

Nếu dùng UFW:

sudo ufw allow OpenSSH
sudo ufw allow 9443/tcp

Bật firewall:

sudo ufw enable

Kiểm tra:

sudo ufw status

Nếu VPS có firewall từ nhà cung cấp cloud, ví dụ AWS, Oracle, Vultr, Hetzner Cloud Firewall, cần mở port 9443 ở đó nữa.


Bước 6: Truy cập Portainer lần đầu

Mở trình duyệt:

https://YOUR_SERVER_IP:9443

Trình duyệt có thể cảnh báo SSL vì Portainer dùng chứng chỉ tự ký. Với lần đầu, có thể tiếp tục truy cập.

Tạo tài khoản admin:

– Username: nên dùng tên không quá dễ đoán – Password: dài, mạnh, lưu trong password manager

Sau đó chọn môi trường:

– Chọn Get Started – Portainer sẽ kết nối local Docker environment

Bạn sẽ thấy dashboard Docker: container, image, volume, network.


Tối ưu bảo mật sau khi cài

Portainer rất mạnh. Ai vào được Portainer gần như có thể điều khiển toàn bộ Docker host. Vì vậy cần bảo vệ kỹ.

1. Không dùng password yếu

Mật khẩu nên có:

– Ít nhất 16 ký tự – Chữ hoa, chữ thường, số, ký tự đặc biệt – Không dùng lại mật khẩu cũ

2. Chỉ mở port cần thiết

Nếu chưa dùng domain, chỉ mở:

22 cho SSH – 9443 cho Portainer – 80/443 nếu chạy website/reverse proxy

Không mở bừa 9000, database port, Redis port ra internet.

3. Giới hạn IP truy cập Portainer

Nếu IP nhà bạn cố định, nên chỉ cho IP đó vào 9443:

sudo ufw delete allow 9443/tcp
sudo ufw allow from YOUR_HOME_IP to any port 9443 proto tcp

Cách này giảm mạnh rủi ro brute-force.

4. Dùng reverse proxy + HTTPS thật

Về lâu dài, nên đặt Portainer sau Nginx Proxy Manager, Caddy hoặc Traefik. Ví dụ:

https://portainer.example.com

Ưu điểm:

– HTTPS hợp lệ Let’s Encrypt – Không cần nhớ port – Có thể thêm Basic Auth, IP allowlist – Quản lý domain rõ ràng

Nếu mới bắt đầu, dùng https://IP:9443 trước vẫn ổn. Sau đó nâng cấp.


Các thao tác cơ bản trong Portainer

Xem container

Vào:

Containers

Bạn có thể:

– Start – Stop – Restart – Remove – View logs – Inspect – Exec console

Xem log app

Chọn container → Logs. Đây là nơi kiểm tra lỗi phổ biến nhất khi app không chạy.

Ví dụ app không vào được:

– Kiểm tra container có running không – Kiểm tra port mapping – Xem log lỗi database, permission, env – Kiểm tra volume mount

Deploy app bằng Stack

Portainer hỗ trợ Stacks, tương đương Docker Compose qua UI.

Vào:

Stacks → Add stack

Dán file compose. Ví dụ Nginx đơn giản:

services:
  nginx:
    image: nginx:latest
    container_name: test-nginx
    ports:
      - "8080:80"
    restart: unless-stopped

Deploy xong, mở:

http://YOUR_SERVER_IP:8080

Stack giúp quản lý app gọn hơn so với chạy từng docker run.


Cập nhật Portainer

Portainer nên được cập nhật định kỳ.

Cách đơn giản:

docker stop portainer
docker rm portainer
docker pull portainer/portainer-ce:latest
docker run -d 
  -p 9443:9443 
  --name portainer 
  --restart=always 
  -v /var/run/docker.sock:/var/run/docker.sock 
  -v portainer_data:/data 
  portainer/portainer-ce:latest

Dữ liệu vẫn giữ vì nằm trong volume portainer_data.

Trước khi update quan trọng, nên backup volume.


Backup dữ liệu Portainer

Backup volume:

docker run --rm 
  -v portainer_data:/data 
  -v $(pwd):/backup 
  ubuntu tar czf /backup/portainer_data_backup.tar.gz /data

File backup nằm tại thư mục hiện tại:

portainer_data_backup.tar.gz

Tải về máy cá nhân hoặc lưu sang storage khác.


Lỗi thường gặp

Không truy cập được https://IP:9443

Kiểm tra container:

docker ps

Kiểm tra firewall:

sudo ufw status

Kiểm tra port VPS/cloud firewall.

Container Portainer restart liên tục

Xem log:

docker logs portainer

Thường do volume lỗi, quyền Docker socket, image pull lỗi.

Quên mật khẩu admin

Nếu còn volume nhưng quên admin, cách xử lý tùy phiên bản. Với người mới, nhanh nhất thường là reset theo tài liệu chính thức Portainer hoặc khởi tạo lại nếu chưa có cấu hình quan trọng.


Kết luận

Cài Portainer trên VPS Ubuntu là bước rất đáng làm sau khi mua server, nhất là nếu bạn muốn tự host nhiều dịch vụ bằng Docker. Quy trình chuẩn gồm: cập nhật Ubuntu, cài Docker, tạo volume, chạy Portainer, mở firewall, tạo admin, cấu hình bảo mật.

Portainer giúp bạn nhìn rõ VPS đang chạy gì, quản lý container dễ hơn, giảm phụ thuộc vào lệnh thủ công. Tuy nhiên, vì Portainer có quyền rất cao, hãy bảo vệ nó nghiêm túc: mật khẩu mạnh, firewall chặt, hạn chế IP, ưu tiên HTTPS qua domain khi có thể.

Bắt đầu đơn giản với https://IP:9443, sau đó nâng cấp dần sang reverse proxy, backup định kỳ, stack compose chuẩn. Đó là hướng đi thực tế, bền vững cho người mới mua VPS.

Tác giả

P T P

Chia sẻ

Bài viết liên quan

Bình luận (0)

Email của bạn sẽ không được hiển thị công khai.

Chưa có bình luận. Hãy là người đầu tiên!