Docker Hello World: Container đầu tiên của bạn

Photo of author

Văn Ngọc Tân

Bạn có biết?

Hãy tưởng tượng bạn vừa mua một chiếc xe mới. Bạn mở cửa, ngồi vào ghế lái, nhấn nút khởi động — và lần đầu tiên nghe tiếng động cơ. Đó là cảm giác khi chạy container đầu tiên trong Docker. Hồi hộp, hơi lo lắng, nhưng cực kỳ thú vị!

Trong bài này, chúng ta sẽ cùng nhau chạy container đầu tiên. Chỉ cần một lệnh duy nhất — và bạn sẽ thấy Docker hoạt động như thế nào từ bên trong.

Chạy container đầu tiên

Mở terminal và gõ lệnh sau:

docker run hello-world

Sau vài giây, bạn sẽ thấy dòng chữ chào mừng từ Docker:

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

Chúc mừng! Bạn vừa chạy container đầu tiên thành công!

Giải thích: Chuyện gì vừa xảy ra?

Một lệnh đơn giản nhưng bên trong diễn ra 3 bước quan trọng:

  • Pull image — Docker tải image hello-world từ Docker Hub về máy bạn
  • Create container — Docker tạo một container mới từ image đó
  • Run — Container chạy lệnh trong image, in ra thông điệp, rồi dừng lại

Bạn có thể hình dung như sau:

docker run hello-world
│
├── Image "hello-world" đã có chưa?
│   ├── Chưa → Pull từ Docker Hub
│   └── Có → Dùng image local
│
├── Tạo container mới từ image
│
└── Chạy container → In thông điệp → Dừng

Lần thứ hai chạy lệnh này sẽ nhanh hơn vì image đã có sẵn trên máy.

Chạy container tương tác

Container hello-world chạy xong rồi dừng ngay. Để “vào bên trong” container và tương tác, chúng ta dùng flag -it:

docker run -it ubuntu bash

Sau khi image Ubuntu được tải về, bạn sẽ thấy prompt thay đổi:

root@a1b2c3d4e5f6:/#

Bây giờ bạn đang ở bên trong container Ubuntu! Hãy thử vài lệnh:

cat /etc/os-release
ls /
echo "Xin chào từ container!"
exit

Sau khi gõ exit, bạn sẽ quay lại terminal của máy host.

Giải thích các flag:

  • -i (interactive) — giữ stdin mở, cho phép bạn nhập lệnh
  • -t (tty) — tạo pseudo-terminal để hiển thị đẹp hơn
  • bash — lệnh sẽ chạy khi container khởi động
Terminal hiển thị code trên màn hình máy tính
Làm việc với Docker CLI trên terminal — nơi mọi thứ bắt đầu

Quản lý container

Sau khi chạy vài container, bạn cần biết cách quản lý chúng.

Xem container đang chạy

docker ps

Lệnh này hiển thị tất cả container đang chạy. Nếu container đã dừng, bạn sẽ không thấy nó ở đây.

Xem tất cả container (kể cả đã dừng)

docker ps -a

Bạn sẽ thấy cả container hello-world đã dừng ở phần trước.

Dừng container

docker stop <container_id>

Thay <container_id> bằng ID hoặc tên container. Bạn chỉ cần nhập vài ký tự đầu của ID là đủ.

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

docker start <container_id>

Xóa container

docker rm <container_id>

Container phải dừng trước khi xóa. Muốn xóa container đang chạy:

docker rm -f <container_id>

Xem logs của container

Muốn xem container đã in ra những gì? Dùng lệnh docker logs:

docker logs <container_id>

Để theo dõi logs real-time (giống tail -f):

docker logs -f <container_id>

Lệnh này cực kỳ hữu ích khi debug ứng dụng chạy trong container.

Các lệnh Docker cơ bản nhất

Lệnh Mô tả Ví dụ
docker run Chạy container mới docker run nginx
docker run -it Chạy container tương tác docker run -it ubuntu bash
docker ps Liệt kê container đang chạy docker ps
docker ps -a Liệt kê tất cả container docker ps -a
docker stop Dừng container docker stop abc123
docker start Khởi động container đã dừng docker start abc123
docker rm Xóa container docker rm abc123
docker logs Xem logs của container docker logs abc123
docker images Liệt kê image đã tải docker images
docker pull Tải image về mà không chạy docker pull nginx

Best Practices khi mới bắt đầu

  • Dọn dẹp thường xuyên — Container stopped chiếm dung lượng. Chạy docker container prune để xóa container đã dừng
  • Đặt tên cho container — Dùng docker run --name my-app nginx thay vì nhớ ID dài ngoằng
  • Không chạy everything as root — Mặc định container chạy với quyền root. Trong production, hãy dùng user khác
  • Hiểu rõ image vs container — Image là “khuôn”, container là “sản phẩm” từ khuôn đó. Một image có thể tạo nhiều container
  • Đọc output cẩn thận — Docker thường thông báo rõ ràng khi có lỗi. Đừng sợ đọc error message!

Bước tiếp theo

Bạn đã chạy container đầu tiên, biết cách quản lý container, và xem được logs. Đây là nền tảng vững chắc cho mọi thứ tiếp theo.

Trong bài tiếp theo, chúng ta sẽ tìm hiểu sâu hơn về Docker Image — cách Docker lưu trữ và phân phối phần mềm. Bạn sẽ hiểu tại sao image là trái tim của Docker.

→ Bài tiếp theo: Docker Image: Tìm hiểu về hình ảnh Container

0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest
0 Góp ý
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận