Trình tạo Docker Compose
Viết docker-compose.yml bằng tay nghĩa là phải nhớ chính xác thụt lề, đặt dấu ngoặc kép cho mọi ánh xạ cổng và biết chuỗi phiên bản nào mà chương trình Compose của bạn hiểu được. Trình tạo này cho phép bạn định nghĩa service qua các trường đơn giản: tên, image, ánh xạ cổng host:container và volume. Kết quả là một file YAML hợp lệ theo đặc tả Compose hiện đại (không có khóa version) cùng các mặc định hợp lý.
Cách xây file Compose
-
1
Thêm service
Đặt tên, image, ánh xạ cổng host:container và volume cho từng service. Đã có sẵn hai service mẫu.
-
2
Chỉnh sửa hoặc xóa dòng
Sửa trực tiếp mọi trường, thêm service khác bằng nút + Service hoặc xóa dòng không cần thiết.
-
3
Kiểm tra YAML được tạo
Bản xem trước cập nhật khi bạn gõ: các ánh xạ cổng được đặt trong ngoặc kép và khóa version được lược bỏ, đúng như đặc tả Compose hiện đại.
-
4
Sao chép file
Sao chép docker-compose.yml đã tạo và dán vào thư mục gốc dự án của bạn.
Đặc tả Compose hiện đại
Compose V2 (plugin đi kèm Docker Desktop và Docker Engine hiện đại) tuân theo Compose Specification. Khóa version: đã bị loại bỏ; trình tạo sẽ lược bỏ nó. Các khóa cấp cao nhất là services, networks, volumes, configs và secrets.
Cấu trúc của một service
Một service hướng tới vận hành trông như thế này:
services:
web:
image: nginx:1.27-alpine
restart: unless-stopped
ports:
- "80:80"
volumes:
- ./public:/usr/share/nginx/html:ro
depends_on:
app:
condition: service_healthy
networks:
- frontend
- backend
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://localhost/health"]
interval: 30s
timeout: 5s
retries: 3
Volume: bind mount so với volume đặt tên
- Bind mount (
./app:/var/www) gắn container với một đường dẫn trên máy chủ; rất tốt cho phát triển cục bộ vì thay đổi phản ánh ngay lập tức. - Volume đặt tên (
pgdata:/var/lib/postgresql/data) do Docker quản lý và tồn tại độc lập với mọi đường dẫn trên máy chủ; lựa chọn đúng cho cơ sở dữ liệu và những gì bạn không muốn xóa nhầm bằngrm -rf. - Volume ẩn danh - tránh dùng. Nó sống sót qua các lần khởi động lại nhưng biến mất không báo trước khi chạy
docker compose down -v.
Mạng
Theo mặc định, Compose tạo một mạng mang tên dự án và kết nối mọi service với nó. Khai báo mạng tường minh hữu ích khi:
- Bạn muốn tách cơ sở dữ liệu khỏi service hướng ra công chúng.
- Bạn cần một bridge với subnet tùy chỉnh để khớp với hạ tầng hiện có.
- Bạn muốn gắn container vào một mạng ngoài đã tồn tại (
external: true).
Lỗi thường gặp nên tránh
- Xung đột khóa version.
version: "3.8"ở đầu file ngăn các tính năng mới nhưstart_intervalcủa healthcheck hoạt động trên Compose cũ; trình tạo lược bỏ khóa version. - Ngoặc kép cho cổng.
8080:80trong một số trường hợp biên được phân tích như số YAML hệ đếm 60; trình tạo luôn đặt ánh xạ cổng trong ngoặc kép. - Bí mật viết cứng. Bí mật viết trực tiếp vào compose.yml sẽ bị commit vào git. Hãy giữ chúng trong
env_filehoặc kho bí mật của nền tảng. - depends_on thiếu điều kiện.
depends_on: [db]đơn giản chỉ chờ container khởi động chứ không phải service sẵn sàng. Hãy dùngcondition: service_healthyvà thêm healthcheck cho service phụ thuộc.
Câu hỏi thường gặp
Compose Specification hiện tại (khớp với Docker Compose V2). File lược bỏ khóa version:, đây là cách viết file Compose hiện đại. Hoạt động với Docker Compose V2.22 trở lên.
Không qua biểu mẫu trong phiên bản này. Trình tạo tập trung vào định nghĩa service với image, port và volume. Bạn có thể tự thêm mạng, biến môi trường, healthcheck và các khóa khác vào YAML đã tạo trước khi dùng.
Không, công cụ này tập trung vào compose.yml. Với Dockerfile, hãy dùng Trình tạo Dockerfile, nơi xử lý việc chọn image gốc và thứ tự COPY/RUN cho năm công nghệ.
Không. Các định nghĩa service chỉ dùng để tạo YAML trên trang này. Chúng không được lưu, tải lên hay chia sẻ.
Công cụ liên quan
Bảng tham chiếu ASCII
Bảng ASCII đầy đủ từ 0 đến 127 với giá trị thập phân, thập lục phân, bát phân, nhị phân và ký hiệu tham chiếu ký tự số HTML, gồm NUL, LF và DEL.
Tham chiếu ký tự HTML
Danh sách có thể tìm kiếm các thực thể HTML, mã tên và mã số tương ứng của chúng, cùng chức năng sao chép chỉ với một cú nhấp cho các ký tự đặc biệt và biểu tượng.
Bảng tham khảo phím tắt
Tìm phím tắt mặc định theo tài liệu của VS Code, Chrome và Bash dùng GNU Readline trên macOS, Windows và Linux.
Trình xem hex của tệp nhị phân
Chọn một tệp và kiểm tra phần dữ liệu giới hạn từ bất kỳ offset byte hợp lệ nào dưới dạng hex dump cục bộ với cột offset, hex và ASCII.
Bộ chuyển đổi Base64 sang Hex
Chuyển chuỗi Base64 chuẩn thành các byte nền tảng được viết dưới dạng hexadecimal liên tục in hoa. Giải mã nghiêm ngặt, lý tưởng cho token, khóa và chữ ký JWT.
Công cụ xác thực số điện thoại
Kiểm tra cấu trúc số theo quốc gia và xem khu vực, loại số cùng các định dạng E.164, quốc tế, quốc gia và RFC 3966.
Công cụ này có phiên bản bằng các ngôn ngữ khác
- Generator Docker Compose [PL]
- Docker-Compose-Generator [DE]
- Docker Compose-generator [SV]
- Générateur Docker Compose [FR]
- Docker Compose Oluşturucu [TR]
- Gerador de Docker Compose [PT]
- مولّد Docker Compose [AR]
- Docker Composeジェネレーター [JA]
- Docker Compose-generator [NL]
- Docker Compose 생성기 [KO]
- Docker Compose Generator [EN]
- Docker Compose 生成器 [ZH]
- Generador de Docker Compose [ES]
- ตัวสร้าง Docker Compose [TH]
- Generator Docker Compose [ID]
- Generatore di Docker Compose [IT]
- Генератор Docker Compose [RU]