Tôi muốn viết điều này như một nhận xét, bởi vì mặc dù tôi có kinh nghiệm với Docker, tôi chưa bao giờ sử dụng DDEV, nhưng tôi không có đủ danh tiếng cho điều đó.
có Cách thức hoạt động của DDEV trang trong tài liệu DDEV dường như trả lời câu hỏi của bạn.
Tại sao [Docker] cần thiết cho DDEV[?]
DDEV là một ứng dụng cấp cao xử lý thời gian tồn tại của các môi trường phát triển PHP khác nhau. Docker là một công cụ được sử dụng để tạo và cấu hình nhiều máy tính ảo1) (Docker container) chạy các dịch vụ cần thiết cho một tác vụ.
Vì vậy, Docker là bắt buộc, bởi vì nó là công cụ được DDEV sử dụng để thực hiện công việc của mình, bởi vì DDEV thực sự không biết cách tạo máy tính ảo, nó quản lý chúng và cấu hình của chúng.Nó tương tự như quản trị viên quản lý HĐH được cài đặt trong máy tính của công ty, nhưng quản trị viên không thực sự tạo/triển khai HĐH.
Nói cách khác:
- DDEV: người dùng của tôi muốn có một môi trường phát triển PHP mới. Vì vậy, từ cài đặt của họ, tôi đã tạo cấu hình này cho nhiều máy tính ảo. Nhưng tôi thực sự không biết cách khởi động chúng, vì vậy Docker, làm ơn, bạn có thể làm điều đó cho tôi không?
- Docker: Được rồi, hiểu rồi.
Tôi có nên làm chủ Docker trước khi phát triển Drupal trên DDEV[?]
Câu trả lời này được lấy từ tài liệu, không phải từ kinh nghiệm (đó là lý do tại sao tôi muốn viết nó dưới dạng nhận xét).
Mục đích chính của DDEV là quản lý các Docker container cho bạn để bạn có thể tập trung vào các nhiệm vụ cấp cao hơn. Vì vậy, câu trả lời dường như là: không, không cần thiết, vì DDEV là một lớp trên Docker. DDEV có đó bạn không phải xử lý tất cả những thứ Docker phức tạp đó.
Như đã nói, tôi khuyên bạn nên tìm hiểu những điều cơ bản cốt lõi về Docker (ví dụ: Docker image và container là gì và sự khác biệt giữa chúng là gì, Docker chạy trên Windows như thế nào, ...), bởi vì nó có thể giúp hiểu được các vấn đề khi xảy ra sự cố Sai lầm. (Điều này phụ thuộc vào mức độ DDEV xử lý sự cố.)
1) Lưu ý rằng bộ chứa Docker không phải là một máy được ảo hóa hoàn toàn, đó là một môi trường biệt lập nhẹ. Nó chạy tự nhiên trên Linux, vì vậy trên Windows, có một lớp ảo hóa khác. Nhưng tất cả những điều đó nằm ngoài phạm vi của câu hỏi này.