Container = Image + Writable Layer
# 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ể# 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ùnglatest trỏ đến bản mới nhất. Luôn chỉ định tag cụ thể cho production: docker pull node:20-alpine.# 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ảidocker search nginxdocker pull nginx:alpinedocker images — xem image vừa tảidocker run -d --name web -p 8888:80 nginx:alpinehttp://localhost:8888 — thấy trang Welcomedocker ps — xem container đang chạydocker stop web && docker rm webdocker rmi nginx:alpine — xóa image1. Sự khác biệt chính giữa image và container?
2. Cờ -p 8080:80 có nghĩa là gì?