Skip to content
Trung Tiến
Trang chủBlogDự ánCông cụKhóa họcVề tôiLiên hệ
en
✦

Trung Tiến

Công nghệ phụng sự chúng sinh

BlogDự ánKhóa họcVề tôiLiên hệ

© 2026

← ← Quay lại danh sách khóa học
Bài học 2/6⏱️ 15 phút

Docker Images

1/6

📦Image là gì?

Image là bản mẫu (template) để tạo container — giống class trong OOP. Image chứa mã nguồn, thư viện, biến môi trường và cấu hình. Image là read-only; container thêm một writable layer lên image.
  • Image: File chỉ-đọc — không thể sửa trực tiếp
  • Container: Lớp writable trên image — có thể đọc/ghi
  • Registry: Kho chứa image (Docker Hub là public phổ biến nhất)
Image (Read-only) Ubuntu base layer Python layer App code layer → Container (Read-Write) Ubuntu base layer Python layer App code layer Writable Layer

Container = Image + Writable Layer

🔍Tìm kiếm & tải image

Search & pull
# Tìm image nginx
docker search nginx
# NAME    DESCRIPTION       STARS   OFFICIAL
# nginx   Official build   20000+  [OK]

# Tải image
docker pull nginx
docker pull nginx:1.25-alpine  # Tag phiên bản cụ thể

📋Quản lý image

Image management
# Xem danh sách
docker images
# REPOSITORY   TAG       IMAGE ID       SIZE
# nginx        latest    abc123def456   187MB

# Xóa image
docker rmi nginx
docker rmi nginx:1.25-alpine
docker image prune  # Xóa tất cả image không dùng

🏷️Image Tags

Mỗi image có nhiều tag cho phiên bản. Tag latest trỏ đến bản mới nhất. Luôn chỉ định tag cụ thể cho production: docker pull node:20-alpine.

🌐Nginx web server với port mapping

Nginx with port mapping
# Map port 8080 (host) → 80 (container)
docker run -d --name my-nginx -p 8080:80 nginx

# -d: chạy nền | -p host:container | --name: đặt tên

# Kiểm tra
curl localhost:8080
# <!DOCTYPE html> ... Welcome to nginx!

docker stop my-nginx && docker rm my-nginx
  • -d — detached: chạy ẩn, không chiếm terminal
  • -p host:container — cổng host bên trái, container bên phải

🎯Thực hành

  1. Chạy docker search nginx
  2. Chạy docker pull nginx:alpine
  3. Chạy docker images — xem image vừa tải
  4. Chạy docker run -d --name web -p 8888:80 nginx:alpine
  5. Mở http://localhost:8888 — thấy trang Welcome
  6. Chạy docker ps — xem container đang chạy
  7. Chạy docker stop web && docker rm web
  8. Chạy docker rmi nginx:alpine — xóa image

❓ Kiểm tra kiến thức

1. Sự khác biệt chính giữa image và container?

2. Cờ -p 8080:80 có nghĩa là gì?

← Bài trước2 / 6Bài tiếp →