(+84) 236.3827111 ex. 402

Bắt đầu với Docker – Phần 3: Làm quen với Container và lệnh cơ bản


1. Giới thiệu ngắn gọn

Sau khi hoàn tất quá trình cài đặt Docker ở phần trước, đây là lúc chúng ta bắt đầu bước vào phần thực hành – làm quen với container, thành phần trung tâm và quan trọng nhất trong toàn bộ hệ sinh thái Docker.

Nếu ở phần 1 bạn đã hiểu Docker để làm gì, thì ở phần này bạn sẽ thực sự thấy Docker hoạt động như thế nào. Việc nắm vững cách tạo, chạy và quản lý container là kỹ năng đầu tiên mà bất kỳ ai học Docker cũng cần thành thạo. Đây cũng là nền tảng để đi sâu hơn vào các khái niệm như image, volume, network hay Docker Compose trong các bài sau.

Mục tiêu của bài viết là giúp bạn hiểu container là gì, phân biệt nó với image, và làm quen với các lệnh Docker cơ bản để có thể khởi động, dừng, quan sát và xóa container trong thực tế.

2. Container là gì?

Hiểu một cách đơn giản, container là một môi trường cô lập dùng để chạy ứng dụng. Mỗi container chứa đầy đủ mọi thứ ứng dụng cần – mã nguồn, thư viện, biến môi trường và cấu hình – nhưng lại cực kỳ nhẹ, có thể khởi động hoặc xóa đi chỉ trong vài giây.

Khác với máy ảo (Virtual Machine), container không cần cài đặt một hệ điều hành riêng. Thay vào đó, các container chia sẻ chung kernel của hệ điều hành chủ (host OS), nhờ đó tiết kiệm tài nguyên và khởi động nhanh hơn nhiều. Bạn có thể hình dung container giống như “một tiến trình được gói gọn”, có đầy đủ môi trường để chạy ứng dụng, nhưng vẫn rất nhỏ gọn và linh hoạt.

Ví dụ, khi bạn muốn chạy thử một website Nginx, bạn không cần cài Nginx vào máy tính. Chỉ cần một dòng lệnh Docker, bạn đã có ngay một container chạy Nginx độc lập, có thể xóa đi bất cứ lúc nào mà không ảnh hưởng đến hệ thống.

3. Image và Container – Mối quan hệ

Để hiểu rõ cách Docker hoạt động, bạn cần nắm được mối quan hệ giữa Image và Container – hai khái niệm thường đi liền với nhau.

  • Docker Image là mẫu (template) chứa toàn bộ dữ liệu, mã nguồn, thư viện và môi trường cần thiết để chạy một ứng dụng. Bạn có thể hình dung nó giống như một bản sao nguyên gốc của hệ thống – ví dụ, image “nginx” chứa sẵn web server Nginx được cài đặt đầy đủ.
  • Container, ngược lại, là phiên bản đang chạy (runtime instance) của image đó. Khi bạn “chạy” một image, Docker sẽ tạo ra một container dựa trên image và khởi động nó.

Nói cách khác:

  • Image = bản thiết kế,
  • Container = ngôi nhà được xây từ bản thiết kế đó.

Điểm mạnh của Docker là bạn có thể khởi tạo nhiều container từ cùng một image, giống như việc xây nhiều ngôi nhà từ cùng một bản vẽ, mỗi cái hoạt động độc lập, không ảnh hưởng lẫn nhau.

Ví dụ thực tế:

docker pull ubuntu

docker run -it ubuntu bash

  • Lệnh docker pull ubuntu tải image “ubuntu” từ Docker Hub về máy.
  • Lệnh docker run -it ubuntu bash tạo một container mới từ image đó, cho phép bạn truy cập vào môi trường Ubuntu ngay trong terminal.

Khi bạn thoát ra (exit) hoặc dừng container, image gốc vẫn còn, và bạn có thể khởi tạo lại container mới bất cứ lúc nào.

4. Các lệnh Docker cơ bản cần nắm

Sau khi hiểu được khái niệm về imagecontainer, bước tiếp theo là học cách tương tác với chúng qua các lệnh Docker cơ bản.

Những lệnh này là nền tảng mà bạn sẽ dùng đi dùng lại trong suốt quá trình làm việc với Docker – từ kiểm tra, khởi chạy đến dọn dẹp hệ thống.

Để dễ nhớ, chúng ta chia thành 3 nhóm chính:

  • Nhóm 1 – Làm việc với Image

Image là nền tảng để tạo container, nên bạn cần biết cách tải, xem và xóa chúng.

Mục đích

Lệnh

Mô tả

Tải image từ Docker Hub

docker pull

Ví dụ: docker pull nginx

Xem danh sách image có sẵn

docker images

Liệt kê toàn bộ image đang lưu trữ trên máy

Xóa một image

docker rmi

Xóa image không cần thiết để tiết kiệm dung lượng

Ví dụ:

docker pull ubuntu

docker images

Lúc này, bạn sẽ thấy image ubuntu xuất hiện trong danh sách kết quả.

  • Nhóm 2 – Làm việc với Container

Container là “phiên bản đang chạy” của image, vì vậy nhóm lệnh này giúp bạn khởi chạy, tạm dừng và quản lý chúng.

Mục đích

Lệnh

Mô tả

Tạo và chạy container mới

docker run

Chạy image thành container

Xem container đang chạy

docker ps

Hiển thị danh sách container hoạt động

Xem tất cả container

docker ps -a

Rất hữu ích để kiểm tra lịch sử chạy

Dừng container

docker stop

Ngừng container đang chạy

Khởi động lại container đã dừng

docker start

Tiếp tục container cũ

Xóa container

docker rm

Dọn container đã dừng khỏi danh sách

Ví dụ:

docker run -it ubuntu bash

docker ps

docker stop

docker rm

  • Nhóm 3 – Quan sát và tương tác với Container

Đôi khi bạn cần “bước vào” container hoặc xem log của nó. Những lệnh sau giúp bạn làm điều đó.

Mục đích

Lệnh

Mô tả

Truy cập vào container

docker exec -it bash

Mở terminal bên trong container

Xem log của container

docker logs

Hiển thị thông tin đầu ra (stdout/stderr)

Xem chi tiết cấu hình container

docker inspect

In ra thông tin chi tiết ở dạng JSON

Ví dụ:

docker exec -it bash

docker logs

5. Thực hành minh họa: Chạy thử một container thật

Sau khi nắm được các lệnh cơ bản, chúng ta hãy bắt tay vào chạy thử một container thật. Một ví dụ kinh điển khi học Docker là chạy máy chủ web Nginx – công cụ phổ biến dùng để kiểm thử và học về web server.

Bước 1: Tải image Nginx

Mở terminal (Linux/macOS) hoặc PowerShell (Windows), gõ lệnh:

docker pull nginx

Lệnh này sẽ tải image chính thức của Nginx từ Docker Hub – kho lưu trữ hàng triệu image sẵn có trên Internet.

Bước 2: Chạy container Nginx

Sau khi tải xong, khởi động container bằng lệnh:

docker run -d -p 8080:80 nginx

Giải thích từng phần:

docker run: tạo và chạy container mới.

-d: chạy ở chế độ nền (detached mode), để terminal không bị chiếm.

-p 8080:80: ánh xạ cổng 80 trong container (cổng mặc định của web server) ra cổng 8080 trên máy bạn.

nginx: tên image được sử dụng.

Khi chạy xong, Docker sẽ in ra một chuỗi ID container – đây là định danh duy nhất để bạn quản lý nó sau này.

Bước 3: Kiểm tra container đang chạy

Chạy lệnh:

docker ps

Bạn sẽ thấy dòng tương tự:

CONTAINER ID IMAGE COMMAND STATUS PORTS NAMES

a1b2c3d4e5f6 nginx "/docker-entrypoint.…" Up 10 seconds 0.0.0.0:8080->80/tcp vibrant_liskov

Nghĩa là container đang chạy, ánh xạ cổng 8080 thành công.

Bước 4: Kiểm tra kết quả trong trình duyệt

Mở trình duyệt web và truy cập địa chỉ:

http://localhost:8080

Nếu thấy dòng chữ “Welcome to nginx!” hiện lên, chúc mừng bạn — bạn đã chạy thành công web server trong container!

Bước 5: Dừng và xóa container

Sau khi thử nghiệm xong, bạn có thể dừng và xóa container để giải phóng tài nguyên:

docker stop

docker rm

Hoặc, nếu muốn dọn dẹp toàn bộ container không dùng nữa:

docker system prune -f