Khái niệm Docker Image và các lệnh quản lý hình ảnh thông dụng

1. Docker Image là gì?

Trong hệ sinh thái Docker, Image (hình ảnh) được hiểu là một gói phần mềm nhẹ, độc lập và có thể thực thi. Nó bao gồm mọi thứ cần thiết để chạy một ứng dụng: mã nguồn, môi trường thực thi, các công cụ hệ thống, thư viện và các cấu hình mặc định.

Về mặt kỹ thuật, bạn có thể coi Docker Image như một "Blueprint" (bản thiết kế) hoặc một Class trong lập trình hướng đối tượng. Trong khi Image là các thực thể tĩnh (chỉ đọc), thì Container chính là một "Instance" (thể hiện) được khởi tạo từ bản thiết kế đó để chạy trong môi trường thực tế.

2. Các lệnh thao tác với Docker Image

2.1. Liệt kê các Image hiện có

Lệnh này giúp bạn xem danh sách các hình ảnh đã được tải về hoặc xây dựng trên máy cục bộ.

# Cách viết cơ bản
docker images

# Cách viết hiện đại (khuyên dùng)
docker image ls [OPTIONS]
  • -a: Hiển thị tất cả các ảnh (bao gồm cả các lớp ảnh trung gian).
  • -q: Chỉ hiển thị ID của các Image.
  • --digests: Xem thông tin tóm tắt (hash) của ảnh.
  • --format: Tùy chỉnh định dạng đầu ra.

2.2. Gán nhãn cho Image (Tagging)

Lệnh này tạo ra một tên mới (Alias) cho một Image có sẵn, thường dùng để đánh số phiên bản hoặc chuẩn bị đẩy lên Registry.

docker image tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

# Ví dụ: Gán nhãn phiên bản v1 cho image nginx hiện tại
docker image tag nginx:latest my-custom-nginx:v1

2.3. Xóa Docker Image

Để giải phóng bộ nhớ, bạn có thể xóa các Image không còn sử dụng.

docker image rm [IMAGE_ID hoặc NAME]

# Hoặc dùng lệnh cũ
docker rmi -f [IMAGE_ID]

Lưu ý: Nếu một Image đang được sử dụng bởi một Container (dù container đó đã dừng), bạn phải xóa Container trước hoặc sử dụng tham số -f để cưỡng ép xóa.

2.4. Lưu và Nạp Image từ File (Backup & Restore)

Khi cần di chuyển Image sang một máy chủ không có kết nối internet, bạn có thể đóng gói chúng thành tệp tin .tar.

# Xuất Image ra tệp tin
docker image save -o backup-web-app.tar web-app:latest

# Nhập Image từ tệp tin đã lưu
docker image load -i backup-web-app.tar

2.5. Kiểm tra lịch sử hình ảnh

Mỗi Docker Image được cấu thành từ nhiều lớp (layers). Lệnh sau cho phép bạn xem chi tiết các bước lệnh đã tạo ra các lớp đó.

docker image history [IMAGE_NAME]

Các cột thông tin bao gồm: IMAGE (ID lớp), CREATED BY (Lệnh build tương ứng), SIZE (Dung lượng của lớp đó).

2.6. Dọn dẹp các Image dư thừa

Lệnh này cực kỳ hữu ích để xóa bỏ các "dangling images" (các ảnh không có tên và không được container nào sử dụng).

# Xóa các ảnh không sử dụng
docker image prune

# Xóa tất cả các ảnh không có container nào đang chạy (dùng cẩn thận)
docker image prune -a

2.7. Kiểm tra chi tiết Image

Nếu bạn muốn xem cấu hình JSON chi tiết của một Image (như biến môi trường, cổng export, điểm chạy entrypoint), hãy sử dụng lệnh inspect.

docker image inspect [IMAGE_NAME]

Thẻ: docker containerization DevOps docker-cli

Đăng vào ngày 22 tháng 7 lúc 14:45