Cách Cài Docker & Portainer Trên VPS TrumVPS - Quản Lý Container Dễ Dàng

📅 05/2026 · ⏱ 10 phút đọc · 🏷 Hướng Dẫn

Docker đã trở thành công cụ không thể thiếu cho developer và sysadmin. Kết hợp với Portainer — giao diện web quản lý Docker — bạn có thể triển khai và quản lý hàng chục container một cách trực quan. Với VPS TrumVPS chỉ từ 40K/tháng, bạn hoàn toàn có một môi trường Docker ổn định.

Docker Là Gì? Tại Sao Cần Portainer?

Docker là nền tảng container hóa, cho phép bạn đóng gói ứng dụng và các phụ thuộc vào một container độc lập. Container nhẹ hơn máy ảo, khởi động nhanh và dễ dàng di chuyển.

Portainer là giao diện web giúp quản lý Docker thông qua trình duyệt. Bạn có thể tạo, xóa, restart container, xem logs, quản lý volumes và networks — tất cả không cần dòng lệnh phức tạp.

Yêu Cầu

Bước 1: Cài Đặt Docker Engine

Cập nhật hệ thống và cài các gói cần thiết:

apt update && apt install -y ca-certificates curl

Thêm Docker GPG key và repository:

install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Cài Docker:

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

Khởi động Docker và cho phép chạy cùng hệ thống:

systemctl enable docker --now

Bước 2: Kiểm Tra Docker

docker --version

docker run hello-world

Nếu thấy thông báo "Hello from Docker!" là thành công.

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

Tạo volume cho Portainer:

docker volume create portainer_data

Chạy Portainer container:

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:latest

Truy cập Portainer qua: https://your-server-ip:9443

Lần đầu truy cập, bạn sẽ được yêu cầu tạo mật khẩu admin. Sau đó chọn "Local" để quản lý Docker trên chính VPS này.

Bước 4: Mở Port Firewall

ufw allow 9443/tcp

ufw allow 8000/tcp

Bước 5: Triển Khai Ứng Dụng Đầu Tiên

Qua giao diện Portainer, vào App Templates và chọn Nginx, WordPress, MySQL... hoặc dùng Stacks (Docker Compose) để deploy ứng dụng phức tạp.

6 Tính Năng Nổi Bật Của Portainer Bạn Cần Biết

Portainer không chỉ là "Docker GUI đơn thuần". Dưới đây là các tính năng mạnh mẽ giúp bạn quản lý VPS như dân chuyên nghiệp:

Dashboard & Tổng Quan

Trang dashboard hiển thị tổng quan: số container đang chạy/dừng, số images, volumes, networks. Một cái nhìn là biết ngay trạng thái VPS. Bạn có thể xem CPU/RAM usage của từng container, restart container bị treo, xem logs trực tiếp trên browser.

App Templates — Deploy 1 Click

Portainer có sẵn hàng chục template: WordPress, Nginx, MySQL, MongoDB, Redis, Node.js... Chỉ cần chọn → điền vài thông số → deploy. Không cần viết Docker Compose. Rất phù hợp cho người mới hoặc khi cần test nhanh.

Stacks (Docker Compose) — Deploy Ứng Dụng Phức Tạp

Stacks tương đương docker compose nhưng có giao diện web. Bạn paste file YAML → Portainer tự động tạo cả cụm container + network + volume. Hỗ trợ cả Git repository — auto deploy khi code thay đổi.

Registry Management

Portainer kết nối trực tiếp với Docker Hub, GitHub Container Registry (GHCR), GitLab Registry, hoặc private registry. Pull image riêng tư chỉ cần điền credentials — không cần docker login qua CLI.

Container Console (Web Terminal)

Truy cập terminal của container trực tiếp trên browser, không cần SSH. Gõ lệnh, xem output, debug ứng dụng. Cực kỳ tiện khi bạn không có terminal SSH (đang dùng điện thoại, máy tính bảng).

User Management & RBAC

Portainer hỗ trợ tạo nhiều user với quyền khác nhau. Bạn có thể cho khách hàng xem container của họ (không thấy container của người khác), developer chỉ được restart container (không xóa được), admin toàn quyền. Rất hữu ích cho team hoặc agency quản lý VPS cho nhiều khách.

7. Triển Khai Ứng Dụng Thực Tế Với Docker Compose (Stacks)

WordPress + MySQL + Redis Cache

version: '3.8'
services:
  db:
    image: mysql:8.0
    container_name: wp-db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: yourpassword
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wpuser
      MYSQL_PASSWORD: wppassword
    volumes:
      - db_data:/var/lib/mysql
  redis:
    image: redis:7-alpine
    container_name: wp-redis
    restart: always
    volumes:
      - redis_data:/data
  wordpress:
    image: wordpress:php8.2-fpm
    container_name: wp-app
    restart: always
    depends_on:
      - db
      - redis
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wpuser
      WORDPRESS_DB_PASSWORD: wppassword
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wp_data:/var/www/html
  nginx:
    image: nginx:alpine
    container_name: wp-nginx
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - wp_data:/var/www/html:ro
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
      - ./ssl:/etc/nginx/ssl
    depends_on:
      - wordpress
volumes:
  db_data:
  redis_data:
  wp_data:

Chỉ cần paste YAML này vào Portainer → Stacks → Deploy. 30 giây sau bạn có WordPress + MySQL + Redis đầy đủ.

Node.js App + Nginx Reverse Proxy

version: '3.8'
services:
  app:
    image: node:20-alpine
    container_name: node-app
    working_dir: /app
    command: sh -c "npm install && node index.js"
    volumes:
      - ./app:/app
    environment:
      NODE_ENV: production
      PORT: 3000
    restart: always
  nginx:
    image: nginx:alpine
    container_name: node-nginx
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - app
    restart: always

8. Portainer Edge Agent — Quản Lý Nhiều VPS Từ Một Nơi

Nếu bạn có nhiều VPS (5-10 server), cài Portainer Agent trên mỗi VPS và quản lý tất cả từ một Portainer Server duy nhất:

# Trên mỗi VPS con (Edge Agent):
docker run -d \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /var/lib/docker/volumes:/var/lib/docker/volumes \
  -v /:/host \
  --restart always \
  --name portainer_agent \
  portainer/agent:latest

Sau đó add endpoint vào Portainer chính. Bạn có thể: xem tổng quan tất cả VPS trên 1 dashboard, kéo thả container giữa các VPS, deploy đồng loạt stack lên nhiều server. Agency MMO quản lý 20-30 VPS cho khách hàng dùng cách này rất hiệu quả.

9. Docker & Portainer Security Best Practices

deploy:
  resources:
    limits:
      cpus: '0.5'
      memory: 256M

10. So Sánh Portainer vs Công Cụ Khác

Công cụGiao diệnMulti-hostRBACGiáPhù hợp
Portainer CEWeb GUI trực quan✅ (Agent)✅ Cơ bảnMiễn phíCá nhân, team nhỏ
Portainer BEWeb GUI✅ Nâng caoCó phíEnterprise
Docker CLITerminalMiễn phíDev chuyên nghiệp
DockGEWeb GUI đơn giảnMiễn phíCá nhân đơn giản
RancherWeb GUI✅ (K8s)✅ MạnhMiễn phíKubernetes cluster

Kết luận: Portainer CE là lựa chọn tốt nhất cho 95% người dùng VPS cá nhân. Giao diện thân thiện, đầy đủ tính năng, miễn phí. Rancher chỉ cần khi bạn chạy Kubernetes cluster (5+ node).

Câu Hỏi Thường Gặp (FAQ)

VPS 40K (1GB RAM) có chạy được Docker + Portainer không?

Có. Docker engine dùng ~200MB RAM, Portainer dùng ~50MB RAM. Còn lại ~750MB cho container. Chạy được 3-5 container nhẹ (Nginx, Redis, Node.js app nhỏ). Nếu cần nhiều container hơn, nâng lên gói 80K (2GB RAM).

Portainer có thay thế hoàn toàn Docker CLI không?

90% tác vụ có thể làm qua Portainer. Nhưng một số tác vụ nâng cao (build image custom, debug network sâu) vẫn cần CLI. Lời khuyên: dùng Portainer cho quản lý hàng ngày, CLI cho troubleshooting chuyên sâu.

Có nên public Portainer ra internet không?

Chỉ nên nếu bật 2FA + đổi port mặc định + dùng SSL (mặc định Portainer dùng self-signed cert trên port 9443). Tốt hơn: truy cập qua VPN (WireGuard/Tailscale) hoặc SSH tunnel: ssh -L 9443:localhost:9443 user@vps.

💡 Mẹo: Với gói VPS 40K (1GB RAM), bạn chạy được 3-5 container nhẹ. Nếu cần nhiều hơn, nâng cấp lên gói 80K (2GB RAM) hoặc 160K (4GB RAM).

Cần VPS mạnh để chạy Docker?

TrumVPS - CPU Platinum, NVMe SSD - Hoàn hảo cho Docker & Container!

Mã giảm giá: 42089QPI03TI (-9%)

THUÊ VPS NGAY