windows 10 homeでWSL2を使ってdockerを動かす
前回AWS上にRuby on Railsの環境をdockerで構築しました、開発環境をローカルに作る事で、検証等スムーズにいくのでローカルにもdocker環境を構築したいと思います。
windows 10 homeでdockerを動かすパターンは3つ
- VM(Docker ToolboxやVM Ware等)を使用する
- WSL2上に直にdockerをインストール
- Docker for windowを使いWSL2で動かす
今回は一番下のDocker for windowsを使うパターンでいきます。
元々Docker for windowsはwindosw 10 proのみでしたが、windows 10 homeでもWSL2対応になり動作する事が可能になりました。
導入の手順
こちらの導入の手順としては
1.WSL1をインストール
2.Ubuntu-18.04をインストール
3.WSL2を使用できるようにする
4.Docker for windowsをインストールする
の手順になります。どうやらUbuntu-18.04をインストールして実行可能にする事によってWSL2が動作する事になります。
まずWSL(Windows Subsystem for Linux)の導入と手順としてはwindowsのシステムからインストールします。
WSLの導入が終わったらMicrosoft Storeよりubuntu-18.04をインストールします。
また、ubuntuのバージョン切り替え等はwindows power shellを使用します。
現在インストールされているubuntuのバージョン下記コマンドで確認します。
PS C:\WINDOWS\system32> wsl -l -v
インストールしているバージョンを確認し、ubuntuのバージョンを切り替えます。
wsl --set-version Ubuntu-18.04 2
こちらで設定完了になります。
次にdocker for windowのダウンロードですが、windows 10 homeに対応しているのは2.2.0.0以上になります。それ以上のバージョンをインストールします。
https://docs.docker.com/docker-for-windows/release-notes/
上記のインストール完了して実行後、WSL2上でdockerとdocker-composeコマンドが確認できれば完了です。
AWSで使っていた環境をそのまま使うとエラーがでる
docker-compose.ymlファイルのvolumeの定義部分でエラーが出てました。
ファイルのアクセス権限がwindows上のマウントで上手く動いていなかったみいです。
下記コマンドを使ってログを解析してエラーを解決する事ができました。
docker-compose logs
wsl2のタイムゾーンの設定をする
下記のコマンドでtimezoneを日本に変更します。
sudo dpkg-reconfigure tzdata
また、時間がずれている事があるので、下記のコマンドで時間を修正します。
sudo hwclock --hctosys
時間がずれていると、S3に保存時にエラーが出たりするので注意が必要です。