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_IPNếu dùng user khác:
ssh username@YOUR_SERVER_IPCập nhật hệ thống:
sudo apt update && sudo apt upgrade -yCài công cụ cơ bản:
sudo apt install -y ca-certificates curl gnupg lsb-release ufwBướ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/keyringscurl -fsSL https://download.docker.com/linux/ubuntu/gpg |
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpgsudo chmod a+r /etc/apt/keyrings/docker.gpgThê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/nullCập nhật apt:
sudo apt updateCài Docker Engine
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginKiểm tra Docker:
docker --versionChạy thử:
sudo docker run hello-worldNế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:
exitSSH lại. Kiểm tra:
docker psNế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_dataChạ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:latestGiả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 psBạ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 OpenSSHsudo ufw allow 9443/tcpBật firewall:
sudo ufw enableKiểm tra:
sudo ufw statusNế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:9443Trì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/tcpsudo ufw allow from YOUR_HOME_IP to any port 9443 proto tcpCá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:
ContainersBạ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 stackDán file compose. Ví dụ Nginx đơn giản:
services:
nginx:
image: nginx:latest
container_name: test-nginx
ports:
- "8080:80"
restart: unless-stoppedDeploy xong, mở:
http://YOUR_SERVER_IP:8080Stack 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 portainerdocker rm portainerdocker pull portainer/portainer-ce:latestdocker 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:latestDữ 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 /dataFile backup nằm tại thư mục hiện tại:
portainer_data_backup.tar.gzTả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 psKiểm tra firewall:
sudo ufw statusKiểm tra port VPS/cloud firewall.
Container Portainer restart liên tục
Xem log:
docker logs portainerThườ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.
Bình luận (0)
Chưa có bình luận. Hãy là người đầu tiên!