Docker giúp đóng gói ứng dụng cùng dependency thành container, nhờ đó việc triển khai website, API, database hoặc dịch vụ trên VPS Ubuntu trở nên nhất quán hơn giữa môi trường phát triển và production. Thay vì cài từng thành phần trực tiếp lên hệ điều hành, bạn có thể dùng Docker Engine để chạy container và Docker Compose để mô tả nhiều service trong một file cấu hình. Trong năm 2026, Docker vẫn khuyến nghị cài Docker Engine trên Ubuntu từ repository chính thức và sử dụng Docker Compose dạng plugin; bản standalone được xem là phương án legacy. Bài viết này hướng dẫn đầy đủ từ lúc chuẩn bị VPS, gỡ package xung đột, thêm repository Docker, cài Engine và Compose, kiểm tra bằng `hello-world`, tạo stack Nginx mẫu, quản lý volume, log, port, restart policy và bảo mật cơ bản khi đưa container lên VPS thật.
Docker là một trong những cách phổ biến để triển khai ứng dụng trên VPS Ubuntu vì cho phép đóng gói ứng dụng, dependency và cấu hình runtime thành container. Với Docker Compose, bạn có thể định nghĩa nhiều service — chẳng hạn web, database và cache — trong một file YAML, sau đó khởi động cả stack bằng một lệnh.
Bài viết này sử dụng phương pháp cài đặt từ repository chính thức của Docker, phù hợp hơn cho production so với việc tải binary thủ công. Docker hiện khuyến nghị Compose plugin trên Linux; bản Compose standalone chỉ được giữ để tương thích ngược.
Nếu bạn mới làm quen Linux, nên đọc trước bài Các lệnh Linux cơ bản cho người mới dùng VPS Ubuntu. Nếu mục tiêu là cài website theo mô hình Nginx/PHP/MySQL trực tiếp trên host, bài Cài website trên VPS Ubuntu sẽ phù hợp hơn.
1. Docker Engine và Docker Compose khác nhau thế nào?
Docker Engine
Docker Engine là runtime giúp bạn:
- tải image;
- tạo container;
- chạy container;
- map port;
- mount volume;
- quản lý network;
- xem log;
- stop/restart container.
Ví dụ chạy Nginx:
docker run -d -p 80:80 nginx
Docker Compose
Docker Compose giúp mô tả nhiều container trong file compose.yaml.
Ví dụ một stack gồm web và database:
services:
web:
image: nginx:alpine
ports:
- "80:80"
db:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: change-me
Sau đó chạy:
docker compose up -d
Với production, mật khẩu không nên ghi trực tiếp như ví dụ trên; đây chỉ là cấu trúc minh họa.
2. VPS nào phù hợp để chạy Docker?
Docker có thể chạy trên nhiều VPS Linux hiện đại, nhưng tài nguyên cần thiết phụ thuộc workload.
Một website tĩnh trong Nginx container rất nhẹ. Ngược lại, stack gồm database, queue, cache, worker và nhiều service có thể cần RAM và CPU đáng kể.
Không nên chọn cấu hình chỉ theo số lượng container. Một container database có thể nặng hơn nhiều container web nhỏ.
Nếu cần một môi trường Linux 24/7, bạn có thể tham khảo VPS tại HUONG CLOUD và chọn CPU/RAM/storage dựa trên workload thực tế.
3. Kiểm tra phiên bản Ubuntu và kiến trúc
Sau khi SSH vào VPS:
cat /etc/os-release
Kiểm tra kiến trúc:
dpkg --print-architecture
Docker hỗ trợ nhiều phiên bản Ubuntu hiện hành và nhiều kiến trúc khác nhau. Không nên lấy file package của sai phiên bản Ubuntu hoặc sai kiến trúc.
4. Cập nhật hệ thống trước khi cài Docker
sudo apt update
sudo apt upgrade -y
Nếu hệ thống yêu cầu reboot:
if [ -f /var/run/reboot-required ]; then cat /var/run/reboot-required; fi
Nếu cần:
sudo reboot
Sau đó SSH vào lại VPS.
5. Gỡ package xung đột trước khi cài Docker chính thức
Docker Docs khuyến nghị loại bỏ các package có thể xung đột với bản Docker Engine từ repository chính thức.
Bạn có thể kiểm tra:
apt list --installed | grep -E 'docker|containerd|runc'
Nếu trước đó đã cài Docker từ repository Ubuntu hoặc một nguồn khác, hãy đọc danh sách package cẩn thận trước khi gỡ.
Không nên chạy lệnh purge hàng loạt nếu VPS đang có container production chưa backup.
6. Cài các package cần thiết
sudo apt update
sudo apt install ca-certificates curl -y
Tạo thư mục keyring:
sudo install -m 0755 -d /etc/apt/keyrings
Tải GPG key chính thức của Docker:
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
7. Thêm Docker repository vào Ubuntu
Docker Docs hiện sử dụng file source dạng .sources.
Chạy:
sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null
Kết luận
Nếu chưa chắc cấu hình hoặc loại dịch vụ nào phù hợp, hãy gửi nhu cầu thực tế để đội ngũ hỗ trợ tư vấn trước khi mua.
Chưa biết nên chọn gói nào?
Xem bảng giá VPS hoặc liên hệ đội ngũ hỗ trợ để chọn cấu hình phù hợp.
Xem bảng giá VPS →