1. DevilBox là gì?
DevilBox là một bộ công cụ dự trên nền tảng Docker, hổ trợ người dùng xây dựng môi trường phát triển các ứng dụng web chạy trên nền PHP, bộ công cụ này bao gồm gần như toàn bộ các ứng dụng thường được sử dụng trong hệ sinh thái của PHP như Apache, Ngninx, Varnish, Redis, Elasticsearch…..
DevilBox được phát triển dựa trên nền Docker nên có thể hoạt động gần như trên mọi hệ điều hành phổ biến như Windows, Linux, MacOS….
Trong bài viết này chúng ta sẽ cùng tìm hiểu cách cài đặt và sử dụng DevilBox trên Windows 10 với Docker trên nền WSL2 (Windows Subsystem Linux 2)
2. Cài đặt Ubuntu trên nền WSL2
2.1. Yêu cầu hệ thống
- Windows 10 1903 hoặc cao hơn. Đối với phiên bản 1903 yêu cầu bản build 18362 hoặc cao hơn.
2.2. Cài đặt WSL2
- Kích hoạt chức năng Windows Subsystem Linux trong Windows 10. Chạy lệnh sau trong PowerShell dưới quyền admin
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
- Kích hoạt chức năng Virtual Machine trong Windows 10. Chạy lệnh sau trong PowerShell dưới quyền admin
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- Tải và cài đặt nhân Linux mới nhất cho WSL tại đây. File được tải về có đuôi .cab và có thể mở bằng 7Zip, WinZip, WinRar.
- Chọn WSL2 làm phiên bản mặc định bằng cách chạy lệnh sau trong Windows Command Prompt
wsl --set-default-version 2
2.3. Cài đặt Ubuntu
- Cài đặt Ubuntu bằng cách chạy lệnh sau trong Windows Command Prompt
wsl --install -d Ubuntu
- Sau khi hoàn tất cài đặt Ubuntu, chúng ta cần khởi tạo tên đăng nhập và mật khẩu cho Ubuntu, tên đăng nhập không cần giống với tên đăng nhập Windows. Mật khẩu sẽ được sử dụng khi cần chạy các lệnh dùng quyền root.
3. Cài đặt và cấu hình Docker for Windows
3.1. Cài đặt Docker for Windows
- Tải Docker for Windows tại đây
- Chạy file vừa tải được để tiến hành cài đặt Docker for Windows
3.2. Cấu hình Docker for Windows với WSL2
- Sau khi khởi động Docker for Windows. Chọn Settings (biểu tượng răng cưa phía trên bên phải) sau đó chọn dấu check “Use WSL 2 based engine”
- Cho phép Ubuntu (WSL2) sử dụng Docker for Windows bằng cách kích hoạt Ubuntu trong phần tùy chọn WSL Integration
4. Cài đặt DevilBox
Theo như khuyến cáo từ Docker, Docker cho hiệu năng mount file tốt nhất khi file được mount từ một WLS2 distro (trong bài viết này là Ubuntu). Do đó chúng ta sẽ cài đặt DevilBox bên trong Ubuntu để có được hiệu năng tốt nhất. Chi tiết bài viết vui lòng xem tại đây
DevilBox sử dụng docker-compose để khởi tạo và chạy các Docker container liên quan. Trong trường hợp docker-compose chưa được cài bên trong Ubuntu, chúng ta có thể sử dụng những lệnh sau để cài đặt docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
Để cài đặt DevilBox, chúng ta chạy các lệnh sau trong Ubuntu (trong bài viết này DevilBox sẽ được cài ở ~/workspaces/devilbox)
mkdir ~/workspaces cd ~/workspaces git clone https://github.com/cytopia/devilbox cd devilbox cp env-example .env docker-compose up -d
Đến đây thì việc cài đặt và chạy DevilBox đã hoàn tất, chúng ta cũng có thể chỉnh sửa file .env để thay đổi phiên bản của các container sao cho phù hợp với nhu cầu sử dụng của bản thân.
5. Sử dụng DevilBox cơ bản
5.1 DevilBox Control Panel
Sau khi chạy DevilBox thành công, Devilbox sẽ tạo một trang quản lý mặc định ở http://localhost hoặc http://127.0.0.1 hoặc tất cả các hostname khác được trỏ về địa chỉ loopback 127.0.0.1 (trừ những hostname đã được gán cho các project trong DevilBox)
Trang này sẽ cung cấp cho bạn một số thông tin cơ bản của DevilBox như:
- Các dịch vụ đang chạy (chỉ những dịch vụ cơ bản)
- Các thông số liên quan đến các dịch vụ đang chạy (chỉ những dịch vụ cơ bản)
- Các Virtual Host (project) đã được tạo
- Một số công cụ thường dùng như
- PhpMyAdmin
- PhpRedMin
- PhpPgMin
- …….
5.2 Tùy chỉnh đuôi tên miền cho các project trong DevilBox
Khi chúng ta tạo một project mới trong DevilBox, DevilBox cung cấp cho chúng ta một tên miền để chúng ta có thể truy cập vào project thông qua trình duyệt web. Mặc định, DevilBox sẽ tạo ra tên miền có dạng *.loc (project1.loc, testproject.loc ……)
Chúng ta có thể tùy chỉnh phần mở rộng khác thông qua việc chỉnh sửa thông số TLD_SUFFIX trong file .env
Note: Để có thể truy cập vào project trên DevilBox, chúng ta phải thông báo cho trình duyệt trỏ tên miền đển địa chỉ 127.0.0.1 . Việc này có thể hoàn thành thông qua các cách sau đây
- Chỉnh sửa thông tin trong file host của máy tính
- Cấu hình máy tính để sử dụng chức năng AutoDNS của DevilBox