Windows10でlaradockを動かす

Windows10でDocker for Windowsをインストールし、LaradockでLaravel新規プロジェクトを動かすまでのメモ。

環境

  • Windows 10 Pro
  • Lenovo Thinkpad X1 Carbon

Windows for Dockerをインストール

Install Docker for Windows のページで[Get Docker for Windows (Stable)]からダウンロード
インストーラーのインストラクションに沿ってインストールを行う

Hyper-Vを起動

Windows for Dockerを動作させるためには、Hyper-Vが必要。
デフォルトの環境ではHyper-Vが起動していないため、インストール直後にdockerを起動起動しようとすると下記のようなエラーが表示される。

Hardware assisted virtualization and data execution protection must be enabled in the BIOS. See https://docs.docker.com/docker-for-windows/troubleshoot/#virtualization-must-be-enabled

下記のコマンドでHyper-Vを起動する

Start-Process powershell.exe -Verb runas
DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V

下記のメッセージが表示されて起動が完了

展開イメージのサービスと管理ツール
バージョン: 10.0.15063.0

イメージのバージョン: 10.0.15063.0

機能を有効にしています
[==========================100.0%==========================]
操作は正常に完了しました。

しかし、Hyper-Vを起動を起動しても上記のエラーはまだ出現した。
こちらを参考に、BiosでVirtualizationを有効化。

自分の環境では、下記の手順でvirtualizationを有効化した。

  • システム再起動
  • Lenovoのロゴが表示されているときに[Enter]をクリック
  • [F1] > Security > Virtualization で[Enter]をクリックしてEnabledを選択
  • [F10]で保存

※ Hyper-VはWindows 10のPro版にのみデフォルトで付属

Laradockのセットアップ

LaradockでLaravelの新規プロジェクトを動かしてみる

laradockをセットアップ

power shellを開き、作業ディレクトリを準備
今回は、新規でlaravelプロジェクトを作成することを想定
下記のようなディレクトリ構造になる

作業ディレクトリを作成し、移動

cd C:\
mkdir workspace
cd workspace
mkdir dockerLaravel
cd dockerLaravel

Laradockをクローンし、laradockディレクトリに入る

git clone https://github.com/Laradock/laradock.git
cd laradock

設定ファイルをenv-exampleからコピーして作成

cp env-example .env

Laravel新規プロジェクトを作成

コンテナ群を起動。下記のコマンドで、php-fpmやworkspaceのコンテナも起動される

docker-compose up -d nginx mysql

workspaceコンテナに入る

docker-compose exec workspace bash

Composerを使い、Laravelプロジェクトを作成

cd /var/www
composer create-project --prefer-dist laravel/laravel testapp

または、既存プロジェクトが存在する場合はここで git clone する

DocumentRootの設定

次にDockumentRootを変更する。
下記ファイルを開く

laradock/nginx/sites/defautl.conf

下記のように編集する

## 変更前
root /var/www/public 
## 変更後
root /var/www/testapp/public

コンテナを再起動

docker-compose restart

ブラウザで下記アドレスにアクセスして確認する

http://localhost

コンテナを停止するときは下記コマンド

docker-compose stop

次回コンテナを起動したいときは、

docker-compose start

参考

以上