Windows 10 HomeでDocker Composeを使う


Windows 10 HomeでDocker Composeを使う機会があったので、その記録です。

マシンスペック

  • DELL XPS 13
  • Windows 10 Home
  • Intel Core-i7
  • メモリ 8GB
  • SSD 256GB

やること

Windows 10 HomeでDocker Composeを使えるようにする

前提条件

* Windows Updateして、OSを最新にしておく
* VirtualBoxがインストールされてると動かないかも?なので、アンインストールして再起動しておく

Linux用サブシステムとHyper-Vをインストール

Windows 10 HomeでDockerを動かすにはWSL2が必要で、WSL2を使うには、まずはWindowsの機能を有効化する必要があります。
Windowsの機能の有効化または無効化」で下記の反転箇所をチェックしてインストールします。

仮想マシンの機能を有効にする

PowerShellを管理者権限で起動し、下記コマンドを実行します。

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

WSL2に更新する

下記をダウンロードしてインストールします。
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

WSL2を既定のバージョンとして設定

PowerShellを管理者権限で起動し、下記コマンドを実行します。

wsl --set-default-version 2

下記のメッセージが出力されるがスルーして良い。

WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください

タスクマネージャーを開いて、赤線のところが有効になってれば良い。

※参考
Windows 10 用 Windows Subsystem for Linux のインストール ガイド

Docker Desktopをインストール

下記のページに従ってDocker Desktopをインストールします。
Windows 10 Home で WSL 2 + Docker を使う
※「Get started」以降はチュートリアルなので、スキップして良いです。

コマンドプロンプトを開き、下記コマンドを実行してバージョンが出力されたら完了。

docker --version
docker-compose --version

Gitをインストール

Gitが未インストールだったら、インストールします。
WindowsにGitをインストールする方法

コマンドプロンプトを開き、下記コマンドを実行します。

git --version

バージョンが表示されればOK。

'git' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

上記が表示されたら再起動して、再度バージョン確認を行います。

Docker Composeコマンドを使ってみる

コマンドプロンプトを開き、下記コマンドを実行します。

各環境の操作は、下記のように記載します。

[Win]$ WindowsのコマンドプロンプトでWindows内の作業
[PHP]$ WindowsのコマンドプロンプトからPHPコンテナに接続して作業
[Win]$ git clone https://github.com/bobtabo/docker2.git docker
[Win]$ cd docker
[Win]$ docker-compose up -d
・・・
Creating mysql ... done
Creating php   ... done
Creating nginx ... done

[Win]$ docker-compose exec --user 1000 php bash

[PHP]$ pwd
/home/docker

[PHP]$ cd laravel
[PHP]$ composer install
[PHP]$ sudo chmod -R 777 storage

[sudo] password for docker:
パスワード:docker

[PHP]$ sudo chmod -R 777 bootstrap/cache
[PHP]$ cp -p .env.example .env
[PHP]$ php artisan key:generate
[PHP]$ php artisan view:clear
[PHP]$ php artisan cache:clear
[PHP]$ php artisan config:clear
[PHP]$ php artisan route:clear
[PHP]$ php artisan clear-compiled
[PHP]$ php artisan config:cache
[PHP]$ composer dump-autoload
[PHP]$ php artisan ide-helper:generate
[PHP]$ php artisan ide-helper:models -N
[PHP]$ php artisan ide-helper:meta
[PHP]$ php artisan migrate:fresh --seed

動作確認(Windowsのhosts編集)

【Tips】Windows 10のhostsファイルを編集する方法

★下記の点線内を追記
---
127.0.0.1 laravel.local
---

ブラウザで動作確認

コンテナ削除

[Win]$ docker-compose down --rmi all --volumes

※参考
《滅びの呪文》Docker Composeで作ったコンテナ、イメージ、ボリューム、ネットワークを一括完全消去する便利コマンド