Hướng Dẫn Chạy Nginx Trong Container Docker Trên VPS

Giới thiệu

Nginx là máy chủ web mã nguồn mở được sử dụng rộng rãi để phục vụ nội dung website tĩnh và động, làm máy chủ proxy ngược (Reverse Proxy), cần bằng tải (Load Balancing) và lý các kết nối HTPP. Nhờ khả năng xử lý nhiều kết nối đồng thời và hiệu suất cao, Nginx là lựa chọn phổ biến trong việc triển khai và vận hành website hiện nay.

Docker là nền tảng mã nguồn mở cho phép đóng gói và triển khai ứng dụng trong các container độc lập. Container cung cấp môi trường chạy được cô lập ở cấp hệ điều hành, giúp ứng dụng hoạt động nhất quán giữa các môi trường không cần cài đặt toàn bộ điều hành riêng như máy ảo truyền thống.

Việc triển khai Nginx trong Docker Container giúp đơn giản hóa quá trình cài đặt, quản lý và nâng cấp máy chủ web. Thay vì cài đặt trực tiếp Nginx trực tiếp trên VPS, bạn có thể sử dụng Docker image có sẵn để tạo container, cấu hình cổng truy cập và quản lý dịch vụ bằng các cầu lệnh Docker. Khi cần nâng cấp, bạn có thể tạo container mới từ phiên bản image phù hợp và không cần cài đặt lại Nginx trên hệ điều hành máy chủ.

Trong bài hướng dẫn này, bạn sẽ được thực hành từng bước chạy Nginx trong Docker Container trên VPS Ubuntu, từ việc tải Docker image, khỏi chạy container, cấu hình ánh xạ cổng đến kiểm tra website thông qua kiểm tra trình duyệt. Qua đó, bạn sẽ nắm được quy trình triển khai một máy chủ web cơ bản bằng Docker và làm nền tảng cho các bài thực hành nâng cao hơn.

Yêu cầu trước khi thực hiện

Trước khi bắt đầu, bạn cần chuẩn bị:

  • VPS sử dụng Ubuntu 22.04 hoặc 24.04
  • Docker Engine đã được cài đặt và đang hoạt động.
  • Tài khoản có quyền sudo hoặc quyền quản trị root.

Các bước chạy Nginx trong Docker Container

Bước 1: Kiểm tra Docker đã được cài đặt

Đăng nhập VPS thông qua SSH và chạy lệnh:

vNode Tutorial
docker --version

Docker 2026 10 15 01

Tiếp theo, kiểm tra trạng thái dịch vụ Docker:

vNode Tutorial
systemctl status docker 

Nếu Docker đang hoạt động, kết quả sẽ hiện thị trạng thái active (running)

Docker 2026 10 15 02

Nếu VPS của bạn chưa được cài đặt Docker, hãy tham khảo tài liệu hướng dẫn bên dưới để thực hiện cài đặt trước khi bắt đầu các bước triển khai Nginx trong Docker Container.

Hướng dẫn cài đặt Docker trên VPS Ubuntu 24.04

Bước 2: Tải Docker Image Nginx

Docker Image là mẫu chứa các thành phần cần thiết để tạo và chạy Container. Trong bài hướng dẫn này, chúng ta sẽ sử dụng Image Nginx chính thức được cung cấp trên Docker Hub.

Thực hiện lệnh:

vNode Tutorial
docker pull nginx

Docker2026 10 15 03

Sau khi hoàn tất, kiểm tra Image đã có trên VPS:

vNode Tutorial
docker images 

Docker 2026 10 15 04

Kết quả sẽ hiện thị Image có tên Nginx. Nếu không chị định tag phiên bản, Docker mặc định sử dụng tag latest

Bước 3: Tạo và chạy Nginx Container

Sau khi tải Image thành công, thực hiện lệnh sau để tạo và khởi chạy Container:

vNode Tutorial
docker run -d \
  --name nginx-container \
  -p 8080:80 \
  --restart unless-stopped \
  nginx

Giải thích các tham số:

  • Docker run: Tạo và chạy Container từ image.
  • -d: Chạy container ở chế độ nền.
  • –name nginx-container: Đặt tên Container là nginx-container.
  • -p 8080:80: Ánh xạ cổng 8080 trên VPS sang cổng 80 bên trong Container.
  • –restart unless-stopped: Tự động khởi động lại Container khi Docker khởi động, trừ khi Container đã chủ động dừng.
  • nginx: Image được sử dụng để tạo Container.

Sau khi thực hiện, Docker sẽ trả về mã định danh Container nếu quá trình khởi chạy thành công.

Docker 2026 10 15 05

Lưu ý: Nếu cổng 8080 đã được sử dụng, hãy chọn 1 cổng khác. Nếu chỉ cần truy cập Nginx thông qua chính VPS hoặc thông qua một reverse proxy trên máy chủ, có thể dụng -p 127.0.0.1:8080:80 để công khai cổng này trên tất cả giao diện mạng.

Bước 4: Kiểm tra trạng thái Nginx Container

Chạy lệnh:

vNode Tutorial
docker ps 

Nếu container hoạt động bình thường, kết quả sẽ có các thông tin tương tự:

Docker 2026 10 15 06

Trong đó:

  • IMAGES: Image được sử dụng.
  • STATUS: Trạng thái hoạt động của Container.
  • PORT: Thông tin ánh xạ cổng.
  • NAMES: Tên Container.

Để xem các container đã sử dùng, sử dụng:

vNode Tutorial
docker ps -a 

Bước 5: Kiểm tra Nginx

Trước tiên, kiểm tra ngày trên VPS bằng lệnh:

vNode Tutorial
curl -I http://127.0.0.1:8080

Nếu Nginx hoạt động bình thường, phản hồi thướng chứa mã trạng thái:

Docker 2026 10 15 07

Tiếp theo, mở trình duyệt trên máy tính và truy cập địa chỉ:

vNode Tutorial
http://IP_VPS:8080

Thay IP_VPS bằng địa chỉ IP công khai thực tế của VPS.

Nếu kết nối thành công, trình duyệt sẽ hiển thị trang chào mặc định của Nginx.

Docker 2026 10 15 08

Bước 6: Xem log của Nginx Container

Để kiểm tra log và phát hiện các vấn đề trong quá trình hoạt động, thực hiện:

vNode Tutorial
docker logs nginx-container 

Docker2026 10 15 09

Để theo dõi log liên tục:

vNode Tutorial
docker logs -f nginx-container

Nhấn Ctrl+C để thoát chế độ theo dõi log. Thao tác này không dừng Container.

nginx

Bước 7: Quản lý Nginx Container

Sau khi triển khai, bạn có thể quản lý Container bằng các lệnh sau:

Dừng Container:

vNode Tutorial
docker stop nginx-container 

Docker 2026 10 15 11

Khởi động lại Container đã dừng:

vNode Tutorial
docker start nginx-container 

Docker 2026 10 15 12

Khởi động lại Container đang chạy:

vNode Tutorial
docker restart nginx-container

Docker 2026 10 15 13

Xóa container đang chạy, bạn phải chạy lệnh dừng container rồi chạy lệnh xóa container:

vNode Tutorial
Docker stop nginx-container
docker rm nginx-container

Docker 2026 10 15 14

Việc xóa Container không tự động xóa Docker Image Nginx. Image vẫn được lưu trên VPS có thể sử dụng để tạo lại container mới.

Các lỗi thường gặp

Lỗi Nguyên nhân và hướng xử lý
port is already allocated Cổng 8080 đã được xử dụng. Kiểm tra bằng ss -lntp và chọn cổng khác nếu cần
Conflict. The container name is already is use Tên Container đã tồn tại kiểm tra bằng docker ps -a
Cannot connect to the Docker daemon Docker chưa chạy hoặc CLI không kết nối được với daemon. Kiểm tra systemctl status docker.
Website không truy cập được từ bên ngoài Kiểm tra Container, port mapping và firewall.
Container liên tục dừng Kiểm tra trạng thái và log bằng docker ps -a và docker logs nginx-container.

Kết luận

Qua bài hướng dẫn này, bạn đã biết cách triển khai Nginx trong Docker Container trên VPS Ubuntu, từ tải Image, tạo Container, cấu hình cổng truy cập đến kiểm tra hoạt động và quản lý dịch vụ.

Chạy Nginx trong Docker là bước thực hành nền tảng trước khi triển khai website thực tế với Docker Compose, cấu hình tên miền, HTTPS và reverse proxy. Khi đã nắm vững các thao tác cơ bản, bạn có thể tiếp tục tìm hiểu cách sử dụng Docker Volume để lưu trữ dữ liệu và Docker Network để kết nối nhiều dịch vụ trong cùng một hệ thống.