windows10 專業版 64位系統安裝docker並使用 laradock 搭建 laravel 環境
windows10 專業版 64位系統安裝docker
安裝說明
-
windows 10 系統需要開啟 Hyper-V
開啟方式如下圖:
-
開啟控制面板-程式-程式和功能-啟用或關閉 windows 功能
-
找到有關 Hyper-V 的項,全部選中
-
如果發現關於 Hyper-V 的選項無法開啟,那麼就需要進入 bios 開啟虛擬化。開啟方法見如下連結:
檢視 Hyper-V 韌體中啟用的虛擬化是否開啟的步驟:Win + R 輸入 “msinfo32 ” 即可看到“系統資訊”視窗。
進入 bios 開啟韌體虛擬化的方法步驟:進入 bios 設定介面,切換到 Advanced 標籤,選中 CPU Configuration 設定 Intel Virtualization Technology 為 Enabled。(不同的主機板可能會有不同的設定方法,主要是將 Intel Virtualization Technology 設定為 Enabled 即可)
- 再次開啟【啟用或關閉 windows 功能介面】開啟 Hyper-V 所有選項。
-
下載 Docker Desktop for Windows desktop app
- 下載 Docker Desktop for Windows app
- 下載完成之後,直接雙擊安裝
-
開啟 docker 直接可以通過小娜助手搜 docker 關鍵詞,然後啟動 Docker Desktop,不管怎樣,主要是找到 Docker Desktop 應用,開啟就好。
-
檢視 docker 開啟狀態。
初次安裝時,可能會提示你登入 docker 的賬號,如果沒有 docker 賬號的話,可以去 docker 官網註冊一下。
- 測試安裝。 任意位置開啟 Windows PowerShell
// 檢視 docker 版本 docker --version docker-compose --version docker run hello-world
-
使用 laradock 搭建專案
- 將 laradock 專案程式碼克隆到本地:
git clone https://github.com/Laradock/laradock.git
- 進入
laradock
目錄將env-example
複製一份並命名為.env
cp env-example .env
- 執行容器 (此時在 laradock 目錄下)
docker-compose up -d nginx mysql redis workspace
如果指定埠已經被佔用,執行上述命令會報錯,關閉相應的服務再重新執行上述命令即可。
注:安裝過程中,由於某些資源需要翻牆才能下載,建議安裝並啟用 VPN 後再執行上述命令。如果出現需要認證的下載資源無權下載,可以通過 Docker ID/密碼 登入到 Docker 應用(點選狀態列 Docker 應用小圖示就能看到登入選單),注意這裡必須用 Docker ID,不能用註冊郵箱。在 Windows 下如果出現目錄掛載失敗,可以嘗試在 Docker 設定中重新設定 Shared Drives。
- 開啟專案的
.env
檔案並新增如下配置:
DB_HOST=mysql
REDIS_HOST=redis
QUEUE_HOST=beanstalkd
- 在和 laradock 同級目錄下新建 wwwroot 目錄,用於存放程式碼
新建 demo 資料夾,並寫入 phpinfo(); 到 index.php 作為測試。
- 此時需要再次在
.env
檔案中修改APPLICATION
配置項(新版本的 laradock 對應的配置項是APP_CODE_PATH_HOST
)
APPLICATION=../wwwroot/
這樣就相當於為 wwwroot 與 Docker 的 /var/www 目錄建立了軟連線,然後我們修改 nginx 的配置檔案,建立對映關係。
// 複製一份配置檔案 demo.conf
cp ./laradock/nginx/sites/default.conf ./laradock/nginx/sites/demo.conf
修改成以下內容
server {
listen 80;
listen [::]:80;
server_name demo.test;
root /var/www/demo;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass php-upstream;
fastcgi_index index.php;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fixes timeouts
fastcgi_read_timeout 600;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
location /.well-known/acme-challenge/ {
root /var/www/letsencrypt/;
log_not_found off;
}
}
重啟 Docker 的 Nginx
docker-compose up -d nginx
- 在 hosts 檔案中新增 (Windows 下對應檔案路徑是
C:\Windows\System32\drivers\etc\hosts
)
127.0.0.1 demo.test
-
在瀏覽器中訪問 demo.test
-
安裝多專案。比如搭建 laravel 專案 在 wwwroot 目錄下執行 composer 命令 (需要提前在 Windows 環境中安裝 composer) 可以檢視我寫的這篇文章 Windows安裝composer
composer create-project laravel/laravel blog --prefer-dist
目錄結構如下:
-
新增 nginx 配置檔案追加 hosts 配置
-
重啟 docker 中的 nginx
docker-compose up -d nginx
- 彩蛋
- 進入Workspace 容器, 執行比如(Artisan, Composer, PHPUnit, Gulp, ...)等命令
docker-compose exec workspace bash
- 列出正在執行中的容器
docker ps
- 關閉所有正在執行的容器
docker-compose stop
- 進入 mysql 容器
docker-compose exec mysql bash
- 退出容器
exit
-
參考文獻:
laravel 學院<[ Laravel 5.5 文件 ] 快速入門 —— 使用 Laradock 搭建基於 Docker 的 PHP 開發環境>
laravel 學院<[ Laravel 從入門到精通 ] 在 Mac/Windows 系統中使用 Laradock 搭建基於 Docker 的 Laravel 開發環境&