windows 10 homeでWSL2を使ってdockerを動かす

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に保存時にエラーが出たりするので注意が必要です。