NỘI DUNG
Docker Compose là gì?
Docker Compose là một công cụ được thiết kế để định nghĩa và quản lý nhiều container Docker cùng lúc thông qua một tệp cấu hình duy nhất (thường là docker-compose.yml). Nó giúp đơn giản hóa việc triển khai các ứng dụng phức tạp bao gồm nhiều dịch vụ (ví dụ: ứng dụng web, cơ sở dữ liệu, và bộ nhớ cache) bằng cách cho phép bạn mô tả toàn bộ kiến trúc ứng dụng trong một tệp và chạy tất cả chỉ với một lệnh.

Docker Engine và Docker Compose khác nhau như thế nào?
Docker Engine
Docker Engine: Là nền tảng cốt lõi của Docker, bao gồm Docker daemon, Docker CLI, và runtime container (như containerd). Nó chịu trách nhiệm xây dựng, chạy, và quản lý các container riêng lẻ. Bạn sử dụng các lệnh như docker run, docker build để làm việc với từng container hoặc image.
- Ví dụ: Chạy một container Nginx với docker run nginx.
Docker Compose
Docker Compose: Là một lớp công cụ bổ sung chạy trên Docker Engine. Nó không thay thế Docker Engine mà mở rộng khả năng của nó, cho phép bạn quản lý nhiều container cùng lúc như một ứng dụng thống nhất. Thay vì chạy từng lệnh docker run riêng lẻ, bạn định nghĩa tất cả trong tệp docker-compose.yml và dùng lệnh docker-compose up để khởi động toàn bộ.
- Ví dụ: Chạy một ứng dụng web (Nginx) kết nối với cơ sở dữ liệu (MySQL) chỉ với một lệnh.
Tóm lại:
- Docker Engine: Quản lý container cấp thấp, từng cái một.
- Docker Compose: Quản lý ứng dụng cấp cao, nhiều container cùng lúc.
Yêu cầu trước khi bắt đầu
- Docker Engine đã được cài đặt trên Ubuntu (xem bài hướng dẫn tại đây nếu chưa cài).
- Quyền truy cập root hoặc tài khoản người dùng có quyền sudo.
- Kết nối Internet để tải Docker Compose (Nếu chạy máy ảo)
Hướng dẫn cài đặt Docker Compose
Bước 1: Tải Docker Compose
Docker Compose là một tệp nhị phân độc lập, không đi kèm trong gói Docker Engine. Tải phiên bản mới nhất từ GitHub:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- curl -L: Tải tệp từ URL được cung cấp.
- $(uname -s)-$(uname -m): Tự động xác định hệ điều hành (Linux) và kiến trúc CPU (ví dụ: x86_64, arm64).
- /usr/local/bin/docker-compose: Đặt tệp vào thư mục lệnh hệ thống.
Lưu ý: Nếu bạn muốn cài phiên bản cụ thể (ví dụ: v2.24.6), thay latest bằng số phiên bản trong URL, như:
https://github.com/docker/compose/releases/download/v2.24.6/docker-compose-$(uname -s)-$(uname -m).
Bước 2: Phân quyền thực thi
Cấp quyền thực thi cho tệp vừa tải:
sudo chmod +x /usr/local/bin/docker-compose
Bước 3: Kiểm tra cài đặt
Kiểm tra xem Docker Compose đã được cài đặt thành công chưa:
docker-compose --version

Đầu ra sẽ giống như: Docker Compose version v2.34.0
(phiên bản có thể khác tùy thời điểm).
Xử lý sự cố (nếu có)
- Lỗi “command not found”: Đảm bảo tệp docker-compose nằm trong /usr/local/bin và đã được cấp quyền thực thi.
- Lỗi tải tệp: Kiểm tra kết nối Internet hoặc thử lại URL tải thủ công.
- Xung đột phiên bản: Nếu dùng cả docker-compose và docker compose, ưu tiên một phiên bản để tránh nhầm lẫn.
Kết luận
Bạn đã cài đặt thành công Docker Compose trên Ubuntu! Với Docker Engine và Docker Compose, bạn có thể
- Dùng Docker Engine để quản lý container riêng lẻ.
- Dùng Docker Compose để triển khai ứng dụng đa container một cách dễ dàng.
Nếu bạn cần hướng dẫn thêm về cách viết tệp docker-compose.yml hoặc triển khai ứng dụng cụ thể, hãy cho tôi biết nhé! Chúc bạn thành công!