Tìm Hiểu Cách Docker Image Hoạt Động Với Container

Docker Image là gì?

Docker Image là một bản mẫu (template) chỉ đọc chứa tất cả thành phần cần thiết để một chạy ứng dụng trong docker. Image bao gồm mã nguồn, thư viện, runtime, các công cụ hệ thống và cấu hình môi trường. Từ một Docker Image, bạn có thể tạo ra nhiều container để chạy ứng dụng một các độc lập và nhất quán trên nhiều hệ thống khác nhau.

Có thể hiểu đơn giản rằng Docker Image giống như một bộ cài đặt của ứng dụng. Khi image được sử dụng để khởi chạy, Docker sẽ tạo ra một container – đây chính là môi trường thực thi nơi ứng dụng hoạt động.

Docker Image thường được xây dựng từ một tệp cấu hình gọi là Dockerfile, trong đó định nghĩa các bước để tạo nên môi trường chạy cho ứng dụng. Sau khi được tạo, image có thể lưu trữ trên máy cục bộ hoặc chia sẻ thông qua các kho lưu trữ trực tuyến như Docker Hub, giúp người dùng dễ dàng tải về và sử dụng.

Nhờ Docker Image, việc triển khai ứng dụng trở nên nhanh chóng, đồng nhất và hạn chế lỗi do khác biệt môi trường giữa các máy chủ hoặc hệ điều hành.

Docker container là gì?

Docker Container là một môi trường chạy ứng dụng độc lập và tách biệt, được tạo ra từ một Docker Image. Container đóng gói toàn bộ những gì ứng dụng cần để hoạt động, bao gồm:

  • Mã nguồn (source code)

  • Thư viện hệ thống

  • Runtime (NodeJS, PHP, Python…)

  • Biến môi trường

  • Cấu hình hệ thống

Nhờ vậy, ứng dụng có thể chạy ổn định ở mọi nơi – từ máy cá nhân, VPS đến Cloud – mà không gặp lỗi “khác môi trường”.

Cơ chế hoạt động giữa Image và Container

Docker 25

Tổng Hợp Các Lệnh Docker Image Và Container Cơ Bản

I. Quản Lý Docker Image

1. Tải Image từ Docker Hub

Chạy lệnh:

vNode Tutorial
docker pull image:tag

Ví dụ: 

vNode Tutorial
docker pull nginx:latest

Docker sẽ tải image từ Docker Hub về máy của bản

2. Xem danh sách image

Chạy lệnh: 

vNode Tutorial
docker images

Lệnh này hiển thị:

  • IMAGE: hiển thị tên image và phiên bản
  • ID: hiển thị mã định danh duy nhất của image
  • DISK USAGE: hiển thị dung lượng image chiếm trên ổ cứng
  • CONTENT SIZE: hiển thị kích thước thực của nội dung image
  • EXTRA: Cột này thường hiển thị thông tin bổ sung nếu có

3. Xóa Docker Image 

Chạy lệnh:

vNode Tutorial
docker image rm image

ví dụ: 

vNode Tutorial
docker image rm nginx:latest

Nếu image đang được container sử dụng, bạn cần xóa container trước hoặc dùng -f để xóa ép

ví dụ:

vNode Tutorial
docker image rm -f nginx:latest

II. Làm Việc Với Docker Container

1. Tạo và chạy container

Chạy lệnh:

vNode Tutorial
docker run -it --name "Name" -h Host image

Giải thích: 

  • -it: Chạy interactive
  • –name: Đặt tên container
  • -h: Đặt tên hostname
  • image: Tên image và phiên bản dùng để tạo container

ví dụ: 

vNode Tutorial
docker run -it --name "ubuntu" -h ubuntu1 ubuntu:latest

2. Thoát container không dừng nó

Nếu bạn đang ở trong container và muốn thoát ra container vẫn chạy:

CTRL + P, CTRL + Q

3. Xem container đang chạy 

Chạy lệnh:

vNode Tutorial
docker ps

4. Xem tất cả container (Kể cả đã dừng)

Chạy lệnh:

vNode Tutorial
docker ps -a

5. Dừng container 

Chạy lệnh: 

vNode Tutorial
docker stop container

Giải thích:

  • stop: dừng
  • container: Tên container muốn xóa

ví dụ: 

vNode Tutorial
docker stop ubuntu

6. Bật lại container

Chạy lệnh:

vNode Tutorial
docker start container 

ví dụ: 

vNode Tutorial
docker start ubuntu

7. Kết nối lại container đang chạy

Chạy lệnh:

vNode Tutorial
docker attach container 

Lệnh này cho phép bạn quay lại terminal của container

ví dụ:

vNode Tutorial
docker attach ubuntu

8. Xóa container 

Chạy lênh: 

vNode Tutorial
docker rm container 

Nếu container đang chạy, bạn cần dừng trước

ví dụ: 

vNode Tutorial
docker rm ubuntu

9. Ép xóa container 

Chạy lênh: 

vNode Tutorial
docker rm -f container 

Lệnh này sẽ:

  • Dừng container

  • Xóa container ngay lập tức

ví dụ:

vNode Tutorial
docker rm -f ubuntu

Kết luận

Qua việc nắm vững các lệnh Docker cơ bản và hiểu rõ ý nghĩa của từng thành phần trong docker images, bạn có thể chủ động quản lý môi trường container, tối ưu dung lượng lưu trữ và đảm bảo hệ thống vận hành ổn định. Đây là nền tảng quan trọng để phát triển sâu hơn trong DevOps và triển khai ứng dụng trên Cloud.