Docker Compose
| Nhà phát triển | Docker, Inc. |
|---|---|
| Phát hành lần đầu | tháng 12 năm 2014 |
| Phiên bản ổn định | 2.23.0
/ tháng 1 năm 2024 |
| Viết bằng | Go |
| Hệ điều hành | Linux, Windows, macOS |
| Thể loại | Orchestration |
| Giấy phép | Apache License 2.0 |
| Website | docs |
Docker Compose là một công cụ dòng lệnh dùng để định nghĩa và chạy các ứng dụng Docker đa container.[1] Với Compose, bạn sử dụng một tệp cấu hình YAML (thường có tên là docker-compose.yml) để cấu hình các dịch vụ, mạng và khối lượng (volumes) của ứng dụng. Sau đó, chỉ với một lệnh duy nhất, bạn có thể tạo và khởi chạy tất cả các dịch vụ từ tệp cấu hình đó.[2]
Docker Compose đặc biệt hữu ích cho các ứng dụng có kiến trúc microservices, phát triển cục bộ, tích hợp liên tục (CI) và trong các môi trường thử nghiệm.[3]
Lịch sử
Docker Compose lần đầu tiên được giới thiệu với tên gọi "Fig" vào cuối năm 2013, do nhà phát triển Orchard Labs tạo ra.[4] Đến năm 2014, Docker, Inc. đã mua lại Orchard Labs và tích hợp Fig vào hệ sinh thái Docker, đổi tên thành Docker Compose. Phiên bản ổn định đầu tiên (1.0.0) được phát hành vào tháng 7 năm 2015.[5]
Từ phiên bản 2.0 trở đi, Compose đã được tích hợp trực tiếp vào công cụ Docker CLI (dưới dạng plugin), thay vì là một lệnh riêng biệt như trước.[6] Điều này giúp hợp nhất trải nghiệm người dùng và cải thiện hiệu năng.
Cú pháp
Tệp docker-compose.yml sử dụng cú pháp YAML, bao gồm các phần chính sau:
Dịch vụ (Services)
Định nghĩa các container sẽ chạy. Mỗi dịch vụ có thể chỉ định image, cổng, biến môi trường, lệnh khởi chạy, v.v.
Mạng (Networks)
Cấu hình các mạng ảo để các container giao tiếp với nhau.
Khối lượng (Volumes)
Khai báo các ổ đĩa dùng để lưu trữ dữ liệu bền vững, chia sẻ dữ liệu giữa các container hoặc với máy host.
Ví dụ minh họa:
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
database:
image: postgres:13
environment:
POSTGRES_USER: example
POSTGRES_PASSWORD: secret
volumes:
- db-data:/var/lib/postgresql/data
volumes:
db-data:
Ứng dụng phổ biến
Docker Compose được sử dụng rộng rãi trong các tình huống sau:
Phát triển cục bộ
Cho phép các nhà phát triển khởi chạy toàn bộ ứng dụng (gồm nhiều dịch vụ) chỉ với một lệnh duy nhất, giúp tiết kiệm thời gian và giảm thiểu lỗi cấu hình.
Kiểm thử
Dễ dàng tạo các môi trường kiểm thử tạm thời, cô lập, có thể hủy bỏ nhanh chóng sau khi kiểm thử hoàn tất.
Tích hợp liên tục / Triển khai liên tục (CI/CD)
Compose thường được sử dụng trong các pipeline CI/CD để chạy kiểm thử, xây dựng và đóng gói ứng dụng trước khi triển khai lên production.
Microservices
Là công cụ lý tưởng để quản lý và điều phối các dịch vụ nhỏ, độc lập trong kiến trúc microservices.
So sánh với Kubernetes
Cả Docker Compose và Kubernetes đều là công cụ quản lý container, nhưng có mục đích sử dụng khác nhau:
| Tiêu chí | Docker Compose | Kubernetes |
|---|---|---|
| Phạm vi | Phát triển và kiểm thử cục bộ | Môi trường sản xuất (production) quy mô lớn |
| Cấu hình | YAML đơn giản, dễ đọc | YAML phức tạp hơn, nhiều thành phần hơn |
| Khả năng mở rộng | Giới hạn, thường chạy trên một máy chủ | Mở rộng đa máy chủ, hỗ trợ cluster |
| Tự động phục hồi | Không có cơ chế tự động phục hồi | Hỗ trợ tự động phục hồi, cân bằng tải |
| Hệ sinh thái | Tích hợp sẵn với Docker | Hệ sinh thái rộng lớn, nhiều công cụ plugin |
Mặc dù Docker Compose không thể thay thế Kubernetes trong các môi trường sản xuất phức tạp, nhưng nó vẫn là một công cụ mạnh mẽ cho việc phát triển, thử nghiệm và triển khai các ứng dụng nhỏ hoặc vừa.
Xem thêm
Tham khảo
- ^ "Docker Compose overview". Docker Documentation. Truy cập ngày 2 tháng 8 năm 2026.
- ^ "Getting started with Docker Compose". Docker Documentation. Truy cập ngày 2 tháng 8 năm 2026.
- ^ "Why use Docker Compose?". Docker Documentation. Truy cập ngày 2 tháng 8 năm 2026.
- ^ "Introducing Fig". Docker Blog. ngày 16 tháng 12 năm 2013. Truy cập ngày 2 tháng 8 năm 2026.
- ^ "Announcing Docker Compose 1.0". Docker Blog. ngày 23 tháng 7 năm 2015. Truy cập ngày 2 tháng 8 năm 2026.
- ^ "Announcing Compose V2". Docker Blog. ngày 22 tháng 6 năm 2021. Truy cập ngày 2 tháng 8 năm 2026.
Liên kết ngoài
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.









