Docker Image và Docker Hub là gì?

1. Giới thiệu

Trong quá trình triển khai và quản lý ứng dụng bằng Docker, Docker Image và Docker Hub là hai thành phần quan trọng giúp việc đóng gói, lưu trữ và triển khai ưng dựng trở lên nhanh chóng, và thuật tiện hơn.

Docker Image là một mẫu đóng gói sẵn các thành phần cần thiết để chạy ứng dụng, bao gồm mã nguồn, thư viện và môi trường thực thi. Từ một Docker image, chúng ta có thể tạo ra nhiều Docker container.

Docker Hub là nền tảng lữu trữ và chia sẻ Docker Image trực tuyến, cho phép người dùng tìm kiếm, tải xuống và sử dụng các image có sẵn như Nginx, MySQL, Ubuntu và Redis.

Trong bài viết này, chúng ta sẽ cùng tìm hiểu Docker Image và Docker Hub là gì, cách hoạt động cũng như thực hành các lệnh cơ bản để tải, quản lý và sử dụng Docker Image trên máy chủ Linux.

2. Docker Image là gì

Docker Image là một bản đóng gói chứa những thành phần cần thiết để chạy một ứng dụng, chẳng hạn như mã nguồn, thư viện, môi trường runtime và cấu hình mặc định.

Ví dụ, bạn muốn triển khai một website sử dụng Nginx. Thay vì cài đặt Nginx trực tiếp lên VPS, bạn có thể sử dụng Docker Image của Nginx để tạo một container chạy web server.

Docker 2026 10 27 01

Docker Image và Docker Container khác nhau như thế nào?

Docker Image Docker container
Là bản đóng gói ứng dụng Là môi trường chạy được tạo từ image
Không thay đổi trực tiếp khi chạy Có trạng thái và dữ liệu ghi riêng
Dùng để tạo container Dung để thực thi ứng dụng
Có thể lưu trên Docker Hub Chạy trên máy có Docker Engine

Ví dụ:

  • Docker image giống như bộ cài đặt ứng dụng.
  • Docker Container giống như một ứng dụng đang được cài đặt và chạy từ bộ cài đặt đó.

Một Docker Image có thể tạo ra nhiều container độc lập.

3. Docker Hub là gì?

Docker Hub là dịch vụ lưu trữ và phân phối Docker Image trực tuyến do Docker cung cấp.

Website chính thức: Docker Hub

Docker 2026 10 27 02

Docker Hub cho phép người dùng tìm kiếm, tải xuống, lưu trữu và chia sẻ Docker Image.

Ví dụ: Khi bạn muốn triển khai Nginx, MySQL, Resdis hoặc WordPress, bạn có thể tìm Imgae phù hợp trên Docker Hub thay vì tự xây dựng mọi thứ từ đầu.

Docker image phổ biến:

Image Công dụng
Nginx Web Server
mysql Quản trị cơ sở dữ liệu
redis Cache và lưu trữu dữ liệu
wordpress Website WordPress
ubuntu Môi trường ubuntu
node Chạy ứng dụng node.js

Docker Image và Docker Hub hoạt động như thế nào?

Quy trình hoạt động:

  • Tìm Docker Image trên Docker Hub.
  • Sử dụng docker pull để tải image về máy.
  • Sử dụng docker run để tạo và chạy container.
  • Docker Engine sử dụng image đã tải để khởi tạo môi trường và chạy ứng dụng.

Docker 2026 10 27 03

4. Tải Docker Image từ Docker Hub

Bước 1: Cài Docker

Nếu VPS bạn chưa cài Docker bạn có thể tham khảo tài liệu dưới đây

Hướng Dẫn Cài Đặt Docker và Docker Compose Trên Ubuntu 24.04

Bước 2: Tìm Docker Image Nginx

vNode Tutorial
docker search nginx

Lệnh này tìm kiếm các image liên quan đến Nginx trên Docker Hub.

Bạn sẽ thấy thông tin như tên image, mô tả và trạng thái image chính thức.

Docker image

Bước 3: Tải Docker Image

vNode Tutorial
docker pull nginx:latest

Giải thích:

  • docker: Công cụ dòng lệnh Docker.
  • pull: Tải image từ registry.
  • nginx: Tên image
  • latest: Tag của image.

Lưu ý: Latest không đảm bảo là phiên bản phần mềm mới nhất theo số phiên bản. Khi triển khai production, nên chọn tag phiên bản cụ thể và kiểm thư trước khi cập nhật.

Docker 2026 10 27 05

Bước 4: Kiểm tra Docker Image đã tải

vNode Tutorial
docker images

Giải thích:

Thông số Ý nghĩa
REPOSITORY Tên image
TAG Nhãn phiên bản
IMAGE ID Mã định danh image
CREATED Thời điểm tạo image
SIZE Dung lượng image

Docker 2026 10 27 06

Bước 5: Xem thông tin chi tiết thông tin image

vNode Tutorial
docker image inspect nginx:latest

Lệnh này hiện thị cấu hình và metadata của image dưới dạng JSON.

Bạn cũng có thể xem layer tạo nên image:

vNode Tutorial
docker history nginx:latest

Bước 6: Xóa Docker Image

vNode Tutorial
docker rmi nginx:latest

Nếu image đang được một container sử dụng, Docker có thể không cho xóa. Bạn cần kiểm tra container liên quan trước khi thực hiện.

Docker 2026 10 27 07

5. Tạo Docker Container và image

Bước 1: Tạo container Nginx

vNode Tutorial
docker run -d --name web-nginx -p 8080:80 nginx:latest

Giải thích:

Tham số Chức năng
docker run Tạo và chạy container
-d Chạy ở chế độ nền
–name web-nginx Đặt tên container
-p 8080:80 Ánh xạ cổng 8080 đến mấy chủ cổng 80 cuat container
nginx:latest Image sử dụng

Nếu image chưa có trên máy, Docker sẽ tự động tải image từ registry được cấu hình.

Docker 2026 10 27 08

Bước 2: Kiểm tra container

vNode Tutorial
docker ps 

Docker 2026 10 27 09

Bước 3: Truy cập vào website

Truy cập: http://IP-VPS:8080

Thay IP-VPS thành IP VPS của bạn

Docker 2026 10 15 08

Bước 4: Xem log container

vNode Tutorial
docker logs web-nginx

Theo dõi log liên tục:

vNode Tutorial
docker logs -t web-nginx

Nhấn Ctrl+C để thoát khỏi chế độ theo dõi log.

Bước 5: Dừng và khởi động container

Dừng container:

vNode Tutorial
docker stop web-nginx

Khởi động lại:

vNode Tutorial
docker start web-nginx

Xóa container:

vNode Tutorial
docker stop web-nginx
docker rm web-nginx 

Đến đây bạn đã hoàn thành quá trình tải Docker Image và triển khai một ứng dụng web bằng Docker Container.

6. Tự tạo Docker Image bằng Dockerfile

Bước 1: Tạo thư mục dự án

vNode Tutorial
mkdir docker-image-lab
cd docker-image-lab

Bước 2: Tạo file website

Tạo file index.html

vNode Tutorial
cat > index.html <<'EOF'
<!DOCTYPE html>
<html lang="vi">
<head>
    <meta charset="UTF-8">
    <title>Docker Image Lab</title>
</head>
<body>
    <h1>Xin chào Docker!</h1>
    <p>Website đang chạy bằng Docker Image tự tạo.</p>
</body>
</html>
EOF

Bước 3: Tạo Dockerfile

Trong thư mục dự án, tạo file tên chính xác là Dockerfile (Không có phần mở rộng)

vNode Tutorial
cat > Dockerfile <<'EOF'
FROM nginx:stable-alpine

COPY index.html /usr/share/nginx/html/index.html

EXPOSE 80
EOF

Giải thích các câu lệnh:

  • FROM: Sử dụng image Nginx làm nền tảng.

  • COPY: Sao chép file HTML từ máy tính vào image.

  • EXPOSE: Khai báo ứng dụng sử dụng cổng 80. Lệnh này không tự mở cổng ra ngoài.

Cấu trúc thư mục:

docker-image-lab/
├── Dockerfile
└── index.html

Bước 4: Build Docker Image

vNode Tutorial
docker build -t my-website:v1 .

Trong đó:

  • build: Tạo image từ file Dockerfile.
  • -t: Đặt tên và tag cho image.
  • my-website: Tên image.
  • v1: Phiên bản image.
  • .: Sử dụng thư mục hiện tại làm build context.

Docker 2026 10 28 01

Bước 5: Kiểm tra image

vNode Tutorial
docker images

Bạn sẽ thấy image my-website với tag v1.

Docker 2026 10 28 02

Bước 6: Chạy website

vNode Tutorial
docker run -d --name my-web -p 8080:80 my-website:v1

Docker 2026 10 28 03

Truy cập: http://IP_VPS:8080. Thay IP_VPS thành IP VPS của bạn.

Nếu website hiển thị dòng chữ Xin chào Docker!, bạn đã tự build Docker Image thành công.

Docker 2026 10 28 04

7. Đẩy Docker Image lên Docker Hub

Bước 1: Đăng ký Docker Hub

Mở trình duyệt và truy cập Docker Hub. Đăng ký hoặc đăng nhập tài khoản Docker Hub.

Docker 2026 10 28 06

Bước 2: Tạo Repository trên Docker Hub

Trên giao diện Docker Hub:

Chọn Repositories

Docker 2026 10 28 05

Chọn create a repository

Docker 2026 10 28 07

Nhập tên repository là my-website => Chọn Public để có thể tải image công khai => Nhấn Create

Docker 2026 10 28 08

Bước 3: Đăng nhập Docker Hub từ VPS

Quay lại Terminal SSH trên VPS:

vNode Tutorial
docker login 

Docker có thể yêu cầu bạn xác thực bằng trình duyệt thông qua mã thiết bị.

Quay lại Terminal VPS, Docker sẽ hiển thị Login Succeeded.

Docker 2026 10 28 09

Bạn cũng có thể đăng nhập bằng username:

vNode Tutorial
docker login -u YOUR_USERNAME

Thay YOUR_NAME bằng username Docker Hub của bạn. Nếu được yêu cầu mật khẩu, Nếu sử dụng Personal Access Token.

Bước 4: Đặt tag cho Docker image

Hiện tại image trên VPS của bạn là:

vNode Tutorial
my-website:v1

Để đẩy lên Docker Hub, bạn cần gắn tên repository thuộc tài khoản của mình:

vNode Tutorial
docker tag my-website:v1 YOUR_NAME/my-website:v1

Ví dụ nếu username là hatt0904:

vNode Tutorial
docker tag my-website:v1 hatt0904/my-website:v1

Kiểm tra:

Docker 2026 10 28 11

Bạn sẽ thấy hai tên image cùng tham chiếu đến một Image ID

Bước 5: Đẩy image lên Docker Hub

vNode Tutorial
docker push  YOUR_NAM/my-website:v1

Ví dụ:

vNode Tutorial
docker push hatt0904/my-website:v1

Sau khi push thành công, truy cập Docker Hub trên trình duyệt, mở repository my-website và kiểm tra tag v1.

Docker 2026 10 28 13

Kết luận

Qua bài hướng dẫn trên, chúng ta đã tìm hiểu được các khái niệm cơ bản về Docker Image và Docker Hub, đồng thời thực hành các thao tác như tìm kiếm, tải xuống, quản lý và tự xây dựng Docker Image bằng Dockerfile.

Bên cạnh đó, chúng ta cũng đã thực hành tạo Docker Container để chạy website Nginx, đăng nhập Docker Hub và đẩy Docker Image tự tạo lên repository để lưu trữ và chia sẻ.

Việc sử dụng Docker Image và Docker Hub giúp quá trình đóng gói, quản lý và triển khai ứng dụng trở nên đơn giản, nhanh chóng và thuận tiện hơn, đặc biệt khi cần triển khai ứng dụng trên nhiều máy chủ khác nhau.