Tạo Docker Compose
Tạo tệp docker-compose.yml bằng trình chỉnh sửa trực quan
Dịch vụ Dịch vụ: 0
Các phiên bản 3.5-3.9 vẫn giữ trường version cho các công cụ đọc cũ hơn. Docker Compose hiện nay dùng Compose Specification.
Thêm nhanh mẫu dịch vụ
Chưa thêm dịch vụ nào. Hãy chọn một mẫu hoặc thêm một dịch vụ trống.
Toàn bộ cấu hình nằm trên thiết bị này. YAML được cập nhật khi bạn chỉnh sửa.
docker-compose.yml đã tạo
Giới thiệu công cụ tạo Docker Compose
Đây là công cụ tạo Docker Compose, công cụ trực tuyến miễn phí giúp lập trình viên dựng tệp docker-compose.yml một cách trực quan mà không cần tự viết cú pháp YAML. Dù bạn đang thiết lập môi trường phát triển cục bộ hay cấu hình hệ thống nhiều dịch vụ cho production, công cụ này đơn giản hóa quy trình nhờ các mẫu dựng sẵn và trình chỉnh sửa trực quan cho dịch vụ, cổng, volume và biến môi trường.
Docker Compose là công cụ để định nghĩa và chạy các ứng dụng Docker nhiều container. Chỉ với một tệp cấu hình YAML, bạn có thể điều phối cơ sở dữ liệu, bộ nhớ đệm, máy chủ web và các dịch vụ ứng dụng cùng nhau. Công cụ của chúng tôi loại bỏ lỗi cú pháp và đẩy nhanh quá trình cấu hình, để bạn tập trung xây dựng ứng dụng thay vì gỡ lỗi thụt lề.
Công cụ hỗ trợ các mẫu dịch vụ phổ biến gồm PostgreSQL, MySQL, Redis, MongoDB, Nginx và Node.js. Bạn cũng có thể tự tạo dịch vụ tùy chỉnh từ đầu, cấu hình phụ thuộc giữa các dịch vụ bằng depends_on, thiết lập mạng tùy chỉnh và chọn trong nhiều phiên bản Docker Compose từ 3.5 đến 3.9.
Tính năng chính
- Mẫu dựng sẵn cho các dịch vụ PostgreSQL, MySQL, Redis, MongoDB, Nginx và Node.js
- Trình chỉnh sửa trực quan để cấu hình cổng, biến môi trường và điểm gắn volume
- Quản lý phụ thuộc giữa các dịch vụ bằng chỉ thị depends_on
- Cấu hình mạng tùy chỉnh với thiết lập bridge driver tự động
- Tự động phát hiện và khai báo các named volume
- Nhiều tùy chọn chính sách khởi động lại, gồm always, unless-stopped và on-failure
- Bộ chọn phiên bản Docker Compose hỗ trợ các phiên bản từ 3.5 đến 3.9
- Sao chép vào clipboard chỉ với một cú nhấp hoặc tải xuống dưới dạng tệp docker-compose.yml
- Xem trước YAML theo thời gian thực, cập nhật ngay khi bạn cấu hình dịch vụ
- Hỗ trợ thêm không giới hạn dịch vụ tùy chỉnh từ mẫu trống
Cách sử dụng công cụ tạo Docker Compose
- Chọn một mẫu: Nhấp một trong các nút thêm nhanh (PostgreSQL, MySQL, Redis, MongoDB, Nginx hoặc Node.js) để thêm dịch vụ đã cấu hình sẵn, hoặc nhấp "Empty Service" để bắt đầu từ đầu.
- Cấu hình dịch vụ: Mở rộng thẻ dịch vụ rồi chỉnh sửa tên dịch vụ, image Docker, tên container, cổng, biến môi trường, volume và chính sách khởi động lại.
- Thiết lập phụ thuộc: Nếu có nhiều dịch vụ, hãy dùng các ô chọn "Depends On" để xác định thứ tự khởi động giữa các dịch vụ.
- Thêm mạng: Nhập tên các mạng, phân tách bằng dấu phẩy, để nhóm các dịch vụ vào những mạng Docker tách biệt.
- Xem trước và xuất: Xem lại YAML đã tạo trong khung xem trước trực tiếp, sau đó sao chép vào clipboard hoặc tải xuống dưới dạng docker-compose.yml.
- Triển khai hệ thống: Đặt tệp vào thư mục gốc của dự án và chạy docker compose up -d để khởi động tất cả dịch vụ.
Trường hợp sử dụng
- Môi trường phát triển cục bộ: Dựng cơ sở dữ liệu, bộ nhớ đệm và các dịch vụ chỉ bằng một lệnh thay vì cài từng thành phần phụ thuộc thủ công.
- Kiến trúc microservices: Định nghĩa và điều phối nhiều dịch vụ liên kết với nhau, kèm cấu hình mạng và quản lý phụ thuộc phù hợp.
- Pipeline CI/CD: Tạo các tệp docker-compose nhất quán để chạy kiểm thử tích hợp trong pipeline build tự động.
- Thử nghiệm và demo: Nhanh chóng dựng ứng dụng full-stack gồm dịch vụ backend, cơ sở dữ liệu và reverse proxy để trình diễn.
- Hướng dẫn thành viên mới: Chia sẻ một tệp docker-compose.yml chuẩn hóa để lập trình viên mới thiết lập môi trường chỉ trong vài phút.
- Quản lý cơ sở dữ liệu: Cấu hình các instance PostgreSQL, MySQL, MongoDB hoặc Redis với volume bền vững để lưu dữ liệu cục bộ.
- Thiết lập reverse proxy: Cấu hình Nginx làm reverse proxy phía trước các dịch vụ ứng dụng với ánh xạ cổng phù hợp.
- Học Docker: Thử nghiệm cú pháp và cấu hình Docker Compose qua giao diện trực quan, tương tác.
Câu hỏi thường gặp
Công cụ này có miễn phí không?
Có, công cụ tạo Docker Compose hoàn toàn miễn phí. Không giới hạn lượt dùng, không yêu cầu đăng ký và không có tính năng cao cấp nào bị khóa sau paywall.
Dữ liệu của tôi có an toàn không?
Có. Toàn bộ cấu hình được tạo hoàn toàn trong trình duyệt của bạn. Không có dữ liệu nào được gửi đến máy chủ, và không có gì được lưu hay ghi log. Tên dịch vụ, biến môi trường và các thiết lập khác của bạn luôn được giữ hoàn toàn riêng tư.
Tôi nên dùng phiên bản Docker Compose nào?
Docker Compose hiện đại tuân theo Compose Specification và bỏ qua trường version ở cấp cao nhất. Với dự án Compose mới, hãy dùng định dạng hiện tại không có version; chọn 3.5-3.9 khi xuất tệp cho hệ thống cũ hơn vẫn yêu cầu trường này.
Tôi có thể thêm dịch vụ tùy chỉnh không có trong các mẫu không?
Có. Nhấp nút "Empty Service" để tạo một dịch vụ trống, sau đó tự nhập tên image, cổng, biến môi trường và các tùy chọn cấu hình khác cho bất kỳ image Docker nào có trên Docker Hub hoặc registry riêng của bạn.
Named volume khác bind mount ở điểm nào?
Named volume (như postgres_data) do Docker quản lý và giữ dữ liệu qua các lần khởi động lại container. Bind mount (bắt đầu bằng ./ hoặc /) ánh xạ một thư mục cụ thể của máy chủ vào container. Nên dùng named volume để lưu trữ cơ sở dữ liệu, còn bind mount hữu ích để chia sẻ mã nguồn trong quá trình phát triển.
Làm sao xử lý các biến môi trường nhạy cảm?
Với môi trường production, tránh ghi cứng bí mật trong docker-compose.yml. Thay vào đó, hãy dùng tệp .env đặt cạnh tệp compose, hoặc dùng Docker secrets cho các triển khai swarm. Tệp được tạo chỉ là điểm xuất phát để bạn tùy chỉnh với cách quản lý bí mật phù hợp.
Mẹo và thực hành tốt nhất
- Dùng named volume cho cơ sở dữ liệu: Named volume giữ dữ liệu qua các lần dựng lại container, tránh mất dữ liệu khi bạn tạo lại container.
- Cố định phiên bản image: Luôn chỉ định chính xác thẻ image (ví dụ postgres:16-alpine) thay vì dùng latest để đảm bảo bản dựng có thể tái tạo.
- Tận dụng depends_on: Định nghĩa phụ thuộc giữa các dịch vụ để container khởi động đúng thứ tự, đồng thời thêm healthcheck để xác nhận dịch vụ thực sự sẵn sàng.
- Giữ bí mật trong tệp .env: Lưu các giá trị nhạy cảm như mật khẩu và khóa API trong tệp .env và thêm tệp này vào .gitignore để tránh commit nhầm.
- Dùng mạng tùy chỉnh: Tách các nhóm dịch vụ vào những mạng riêng để an toàn hơn và ngăn giao tiếp ngoài ý muốn giữa các dịch vụ.
- Chọn đúng chính sách khởi động lại: Dùng "unless-stopped" cho các dịch vụ cần tồn tại sau khi máy chủ khởi động lại, và "on-failure" cho các dịch vụ chỉ nên khởi động lại sau sự cố.