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.
Nói cách khác:
Đ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
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ề image và container, 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:
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ả.
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
Đô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 |
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
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
» Tin mới nhất:
» Các tin khác: