Cài Docker trên VPS là quá trình thiết lập và triển khai nền tảng ảo hóa container Docker trên một máy chủ riêng ảo, giúp các nhà phát triển và quản trị viên dễ dàng đóng gói, vận chuyển và chạy ứng dụng một cách nhất quán. Trong bài viết này, mình sẽ giúp bạn hiểu rõ hơn lợi ích khi sử dụng Docker trên VPS, các điều kiện cần thiết trước khi cài đặt và hướng dẫn chi tiết từng bước cài đặt Docker trên Ubuntu.
Những điểm chính
- Lợi ích của việc triển khai Docker trên VPS: Nắm rõ các lợi ích nổi bật khi triển khai Docker trên VPS.
- Điều kiện để cài đặt Docker trên Ubuntu: Biết được các điều kiện cần thiết để cài đặt Docker trên Ubuntu hoạt động hiệu quả.
- Hướng dẫn cài Docker trên VPS Ubuntu: Được hướng dẫn chi tiết các bước cài đặt Docker trên VPS Ubuntu.
- Hướng dẫn sử dụng Docker trên VPS Ubuntu: Nắm được các bước cơ bản để sử dụng Docker trên VPS Ubuntu.
- Khắc phục sự cố thường gặp khi cài đặt Docker: Biết được các sự cố thường xảy ra khi cài đặt Docker và cách xử lý.
- Câu hỏi thường gặp: Giải đáp các thắc mắc liên quan đến việc cài Docker trên VPS.
Lợi ích của việc triển khai Docker trên VPS
Việc triển khai Docker trên VPS mang đến nhiều ưu điểm vượt trội như:
- Tiết kiệm chi phí: Khi triển khai Docker trên VPS, bạn chỉ cần thanh toán cho phần tài nguyên mà mình sử dụng, không phải trả thêm cho hệ điều hành hoặc các phần mềm bản quyền đi kèm, giúp tối ưu chi phí đầu tư, nhất là với các dự án nhỏ hoặc khởi nghiệp.
- Tiết kiệm thời gian và công sức: Docker giúp đơn giản hóa quá trình tạo và triển khai ứng dụng. Việc đóng gói ứng dụng cùng toàn bộ môi trường chạy trong container rút ngắn thời gian thiết lập, giảm tải các bước cấu hình phức tạp trên VPS.
- Tăng hiệu suất: Bạn có thể chạy đồng thời nhiều container trên cùng một VPS, tận dụng tối đa tài nguyên sẵn có và giảm thiểu tình trạng lãng phí hoặc chậm trễ khi mở rộng ứng dụng.
- Nâng cao bảo mật, giảm rủi ro: Các container của Docker vận hành độc lập, giúp ngăn chặn lây nhiễm giữa các ứng dụng. Việc backup và khôi phục container cũng rất nhanh chóng, đảm bảo an toàn cho dữ liệu và ứng dụng toàn hệ thống.
- Quản lý linh hoạt: Docker cho phép dễ dàng cấu hình, quản lý các container theo nhu cầu sử dụng thực tế. Ngoài ra, bạn có thể tận dụng các công cụ như Docker Compose hoặc Docker Swarm để điều phối và mở rộng hệ thống khi cần thiết.
- Khả năng tái sử dụng cao: Docker cung cấp tính nhất quán về môi trường giữa các máy chủ – container có thể chuyển đổi, tái sử dụng trên nhiều VPS hoặc hệ thống khác nhau, giúp tiết kiệm chi phí, công sức khi cần mở rộng hoặc triển khai lại.

Điều kiện để cài đặt Docker trên Ubuntu
Trước khi bắt đầu quá trình cài đặt Docker trên Ubuntu, người dùng cần đảm bảo hệ thống và môi trường đáp ứng các yêu cầu cơ bản sau để việc triển khai diễn ra ổn định và hiệu quả:
- Kiến thức cơ bản: Nên nắm vững các khái niệm cơ bản về Docker và cách hoạt động của container. Đồng thời, có hiểu biết nhất định về các lệnh Linux, đặc biệt là khi cài đặt thủ công qua Terminal.
- Phiên bản hệ điều hành: Đảm bảo VPS hoặc máy chủ của bạn đang chạy VPS Ubuntu phiên bản được hỗ trợ, tối thiểu là Ubuntu 20.04 LTS hoặc mới hơn như Ubuntu 22.04 LTS / 24.04 LTS.
- Quyền truy cập hệ thống: Bạn cần có quyền root hoặc quyền sử dụng sudo để thực thi các lệnh cài đặt và cấu hình Docker.
- Cập nhật hệ thống: Trước khi cài đặt, nên đăng nhập vào VPS và cập nhật các gói phần mềm về phiên bản mới nhất bằng lệnh:
sudo apt update && sudo apt upgrade -yViệc cập nhật giúp tránh lỗi tương thích trong quá trình cài đặt Docker.
- Cấu hình phần cứng: Hệ thống cần tối thiểu 512 MB RAM để cài đặt được Docker. Tuy nhiên, để đạt hiệu suất tối ưu khi chạy container, nên sử dụng cấu hình có ít nhất 2 GB RAM.
- Kết nối Internet ổn định: Docker yêu cầu tải xuống các gói và hình ảnh từ kho lưu trữ chính thức, do đó cần đảm bảo mạng ổn định trong suốt quá trình cài đặt.

Hướng dẫn cài Docker trên VPS Ubuntu
Bước 1: Kết nối SSH và cập nhật hệ thống
Đăng nhập vào VPS qua SSH và cập nhật các gói hệ thống để đảm bảo phiên bản phần mềm mới nhất:
ssh username@your_server_ip
sudo apt update && sudo apt upgrade -yBước 2: Cài đặt các gói phụ thuộc cần thiết
Cài đặt các gói hỗ trợ để APT có thể sử dụng kho lưu trữ qua HTTPS:
sudo apt install apt-transport-https ca-certificates curl software-properties-common -yBước 3: Thêm khóa GPG và kho lưu trữ Docker
Nhập khóa GPG chính thức của Docker để xác thực các gói tải về:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpgThêm kho lưu trữ Docker vào nguồn APT của hệ thống:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt updateBước 4: Cài đặt Docker Engine
Thực hiện lệnh sau để cài đặt Docker Engine cùng các thành phần cần thiết:
sudo apt install docker-ce docker-ce-cli containerd.io -yBước 5: Bật Docker khởi động cùng hệ thống và kiểm tra trạng thái
Cho phép Docker tự động chạy khi hệ thống khởi động và kiểm tra trạng thái dịch vụ:
sudo systemctl enable docker
sudo systemctl status dockerBước 6: Xác minh phiên bản và hoạt động của Docker
Kiểm tra phiên bản Docker đã cài đặt:
docker --versionCó thể thử chạy lệnh sau để kiểm tra Docker hoạt động thành công:
docker run hello-worldBước 7: (Tùy chọn) Chạy Docker không cần sử dụng sudo
Nếu muốn đơn giản hóa thao tác, bạn hãy thêm người dùng vào nhóm docker để chạy các lệnh không cần sudo:
sudo usermod -aG docker your_user
su - your_user
groups
docker run hello-worldSau khi hoàn thành toàn bộ các bước trên, Docker đã sẵn sàng hoạt động trên VPS Ubuntu để phục vụ triển khai và quản lý container.
Hướng dẫn sử dụng Docker trên VPS Ubuntu
Sau khi cài đặt thành công Docker trên VPS Ubuntu, bạn có thể bắt đầu tìm hiểu và khai thác sức mạnh của Docker để quản lý, triển khai và tối ưu ứng dụng hiệu quả. Dưới đây là hướng dẫn chi tiết các thao tác cơ bản:
Bước 1: Chạy container đầu tiên
Kiểm tra Docker hoạt động đúng cách bằng cách chạy container mẫu:
docker run hello-worldKhi thông báo “Hello from Docker!” xuất hiện, nghĩa là Docker đã được cài đặt và hoạt động chính xác.
Bước 2: Triển khai ứng dụng phổ biến (ví dụ: Nginx)
Chạy một container chạy web server Nginx và mở cổng 8080 để truy cập từ trình duyệt:
docker run -d -p 8080:80 nginxSau khi chạy lệnh, truy cập địa chỉ http://:8080 để kiểm tra trang web mặc định của Nginx.
Bước 3: Làm quen với các lệnh Docker cơ bản
Dưới đây là một số lệnh quản lý container quan trọng bạn cần nắm:
- Liệt kê các container đang chạy:
docker ps- Liệt kê tất cả container, kể cả container đã dừng:
docker ps -a- Dừng container đang hoạt động:
docker stop <container_id>- Xóa container không còn sử dụng:
docker rm <container_id>Bước 4: Xây dựng và chia sẻ image riêng
Docker cho phép bạn tạo image của riêng mình để tái sử dụng hoặc chia sẻ với nhóm:
docker build -t my-app .
docker tag my-app yourusername/my-app:latest
docker push yourusername/my-app:latestĐiều này đặc biệt hữu ích khi bạn cần triển khai ứng dụng nhất quán trên nhiều máy chủ.
Bước 5: Dọn dẹp và tối ưu dung lượng Docker
Để tránh chiếm dụng tài nguyên không cần thiết, hãy dọn dẹp các image, container hoặc volume không dùng đến:
docker system prune -a
docker image prune
docker container prune
docker volume pruneCác lệnh này giúp giải phóng dung lượng và giữ hệ thống Docker gọn gàng.
Bước 6: Sử dụng Docker Compose cho ứng dụng đa container
Docker Compose hỗ trợ bạn chạy nhiều dịch vụ cùng lúc chỉ với một tệp cấu hình docker-compose.yml. Ví dụ:
version: '3.8'
services:
web:
image: wordpress
ports:
- "8080:80"
depends_on:
- db
db:
image: mysql:5.7
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wp_user
MYSQL_PASSWORD: wp_pass
MYSQL_ROOT_PASSWORD: example
volumes:
db_data:Khởi chạy ứng dụng:
docker-compose up -dBước 7: Quản lý và khởi động Docker trên VPS
Một số lệnh cấu hình vận hành hệ thống Docker khi làm việc trên VPS Ubuntu:
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker
sudo journalctl -u dockerCác lệnh này giúp bạn giám sát hoạt động và đảm bảo Docker luôn sẵn sàng chạy khi hệ thống khởi động.
Khắc phục sự cố thường gặp khi cài đặt Docker
Docker daemon không chạy
Khi gặp lỗi “Không thể kết nối với daemon Docker”, nguyên nhân thường là do dịch vụ Docker chưa hoạt động. Hãy thực hiện các lệnh sau:
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status dockerNếu vẫn lỗi, kiểm tra log bằng:
journalctl -u docker.serviceXem các lỗi về cấu hình, xung đột cổng hoặc driver lưu trữ để xử lý.
Không thể kết nối với socket Docker (lỗi quyền truy cập)
Nếu gặp thông báo “Permission denied when connecting to the Docker daemon socket”, bạn cần kiểm tra quyền người dùng:
groups
sudo usermod -aG docker your_userSau đó đăng xuất và đăng nhập lại rồi khởi động lại dịch vụ:
sudo systemctl restart dockerNếu sự cố vẫn tiếp tục, bạn hãy xem lại hướng dẫn khắc phục lỗi quyền sử dụng Docker.
Lỗi khi thêm kho lưu trữ hoặc cài đặt Docker
Các sự cố khi cài đặt hoặc cập nhật apt của Docker thường do sai URL, thiếu phụ thuộc hoặc không đúng phiên bản Ubuntu:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt updateĐảm bảo không có lỗi định dạng hoặc lỗi GPG key khi cập nhật apt.
Container chạy nhưng không phản hồi
Nếu container không hoạt động như mong muốn, thử kiểm tra log và trạng thái:
docker logs container_name
docker inspect --format='{{json .State.Health}}' container_name
docker restart container_nameSự cố về tường lửa và mạng
Docker sử dụng nhiều port nội bộ, có thể bị tường lửa (UFW) chặn. Mở các port cần thiết với:
sudo ufw allow 2375/tcp
sudo ufw allow 2376/tcp
sudo ufw allow 2377/tcp
sudo ufw allow 7946/tcp
sudo ufw allow 7946/udp
sudo ufw allow 4789/udpKiểm tra kết nối DNS qua container:
docker run busybox nslookup google.comNếu mạng bị lỗi, tạo lại bridge mặc định:
docker network rm bridge
docker network create --driver bridge bridgeDocker chạy chậm, sử dụng tài nguyên lớn
Để xử lý tình trạng Docker chậm, hãy kiểm tra dung lượng đĩa, tài nguyên và dọn dẹp các thành phần không cần thiết:
df -h
docker system df
docker ps -s
docker volume ls
docker system prune -aLỗi bảo mật hoặc xung đột với AppArmor
Docker có thể gặp lỗi khi khởi động container do AppArmor:
dmesg | grep apparmor
docker run --security-opt apparmor=unconfined your_imageChỉ vô hiệu hóa AppArmor nếu cần thiết, tránh áp dụng trong môi trường sản xuất.
Câu hỏi thường gặp
Sự khác biệt chính giữa Docker Image và Docker Container là gì?
Docker Image là một khuôn mẫu tĩnh, chỉ đọc, chứa tất cả mã nguồn, thư viện, và cấu hình cần thiết để chạy một ứng dụng. Docker Container là một phiên bản chạy của Docker Image, là môi trường biệt lập mà ứng dụng được thực thi.
Khi nào nên cân nhắc sử dụng docker system prune -a để dọn dẹp tài nguyên Docker?
Bạn nên sử dụng docker system prune -a khi nhận thấy dung lượng ổ đĩa trên VPS bị chiếm dụng đáng kể bởi các image, container, volume hoặc cache không còn được sử dụng. Lệnh này giúp giải phóng tài nguyên một cách hiệu quả, nhưng cần thận trọng vì có thể xóa bỏ mọi thứ không được sử dụng bởi các container đang chạy.
Docker Compose có lợi ích gì khi làm việc với các ứng dụng có nhiều dịch vụ?
Docker Compose cho phép định nghĩa và chạy các ứng dụng đa container chỉ với một tệp cấu hình YAML duy nhất. Điều này giúp quản lý dễ dàng hơn các thành phần liên kết (như web server, database, cache) của một ứng dụng phức tạp, khởi tạo và dừng chúng cùng lúc.
Triển khai Docker trên VPS Ubuntu mang lại nhiều lợi ích cho người dùng. Bằng cách nắm vững các điều kiện tiên quyết, thực hiện theo hướng dẫn cài đặt chi tiết và làm quen với các lệnh Docker cơ bản, bạn có thể dễ dàng quản lý và triển khai ứng dụng của mình trong môi trường container hiệu quả.




