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-worldtừ 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ơnbash— lệnh sẽ chạy khi container khởi động
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 nginxthay 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