Tài liệu & Hướng dẫn chuyên sâu: Docker Run sang Docker Compose
1. Tổng quan & Nguyên lý hoạt động
Quản trị hạ tầng container bằng các dòng lệnh 'docker run' thủ công tiềm ẩn nhiều rủi ro: câu lệnh quá dài, khó nhớ, khó chia sẻ giữa các thành viên trong team và không thể đưa vào hệ thống quản lý phiên bản (Git). Công cụ 'Docker Run to Docker Compose' của Verdbench phân tích cú pháp câu lệnh CLI và tự động biên dịch thành file 'docker-compose.yml' hoàn chỉnh với chuẩn thụt lề YAML chính xác. Công cụ xử lý thông minh các cờ cấu hình mạng (networks), ổ đĩa (volumes), biến môi trường (environment), giới hạn tài nguyên (memory, cpus) và hỗ trợ ghép nhiều lệnh docker run thành một file Compose đa dịch vụ.
2. Ưu thế kiến trúc & Tính năng nổi bật
Toàn bộ logic tokenize và sinh YAML diễn ra trực tiếp trên trình duyệt bằng JavaScript AST parser. Các mật khẩu và thông số nhạy cảm trong cờ -e hoàn toàn không gửi lên server.
Phân biệt chính xác giữa thư mục liên kết (bind mount như ./data) và volume đặt tên (named volume) để tự động khai báo khối 'volumes:' và 'networks:' cấp cao nhất.
Bạn có thể dán nhiều câu lệnh docker run liên tiếp. Công cụ sẽ tự động tách và gom nhóm thành các service riêng biệt trong cùng một file docker-compose.yml.
3. Bảng đối chiếu cờ Docker Run sang Docker Compose
Bảng quy đổi các tham số dòng lệnh CLI phổ biến sang các directive tương ứng trong file cấu hình docker-compose.yml:
| Cờ Docker Run (CLI) | Chỉ thị Compose (YAML) | Mô tả & Ví dụ |
|---|---|---|
| --name [tên] | container_name: [tên] | Đặt tên cố định cho container (ví dụ: container_name: my-db) |
| -p / --publish [host]:[cont] | ports: ["[host]:[cont]"] | Ánh xạ cổng mạng giữa máy host và container (ví dụ: "5432:5432") |
| -v / --volume [src]:[dst] | volumes: ["[src]:[dst]"] | Gắn kết thư mục bind mount hoặc named volume để lưu trữ dữ liệu bền vững |
| -e / --env [KEY=VAL] | environment: { KEY: VAL } | Khai báo biến môi trường dưới dạng Object (key-value) hoặc danh sách mảng |
| --env-file [file] | env_file: [ [file] ] | Nạp danh sách biến môi trường từ file .env ngoài |
| --network / --net [mạng] | networks: [ [mạng] ] | Chỉ định mạng ảo bridge/overlay nội bộ để các container giao tiếp với nhau |
| --restart [chính sách] | restart: [chính sách] | Cấu hình tự khởi động lại: unless-stopped, always, on-failure |
| -m / --memory [dung lượng] | deploy.resources.limits.memory | Giới hạn dung lượng RAM tối đa container được phép sử dụng (ví dụ: 512m, 1g) |
| --privileged | privileged: true | Cấp quyền root mở rộng và quyền truy cập thiết bị phần cứng của host |
| --entrypoint [lệnh] | entrypoint: [lệnh] | Ghi đè tiến trình khởi tạo mặc định của Docker image |
4. Câu hỏi thường gặp (FAQ)
Giải đáp các thắc mắc phổ biến của lập trình viên khi sử dụng tiện ích Docker Run sang Docker Compose.
5. Công cụ liên quan
- Chuyển đổi JSON ↔ YAML ↔ TOMLChuyển đổi qua lại giữa JSON, YAML và TOML ngay trên trình duyệt — dữ liệu không rời khỏi máy bạn.
- Trình mô phỏng lịch CronDịch biểu thức Cron sang ngôn ngữ tự nhiên và tính thời điểm chạy kế tiếp — không nhầm lẫn múi giờ.
- Trình tạo Content Security Policy (CSP)Xây dựng chính sách bảo mật CSP trực quan, ngăn chặn XSS & Clickjacking, xuất code Next.js và Header HTTP.