Cài đặt lamp trên docker window

Xin chào các bạn, hôm nay mình sẽ hướng dẫn các bạn chạy container Apache và map thư mục source trên ổ cứng với thư mục htdocs (thư mục root mặc định của apache) trên container.

Đầu tiên các bạn cần chuẩn bị source code, ở đây mình có sẵn một source demo để các bạn dễ dàng thực hành hơn. Các bạn download tại đây nhé: tải về

Image mà mình sử dụng ở đây là Bitnami Apache. Các bạn xem trước giới thiệu của nó ở trang Docker Hub trước khi xem video hướng dẫn nha. Trong video mình cũng có giải thích các tham số cần thiết. Mời các bạn xem video hướng dẫn các bước thực hiện:

Chúc các bạn thành công!

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)

Cài đặt lamp trên docker window

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
  • 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.

Cài đặt lamp trên docker window

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”

Cài đặt lamp trên docker window

  • 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

Cài đặt lamp trên docker window

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)

Cài đặt lamp trên docker window

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

5.2 Tạo một project mới trong DevilBox