Dockerを使ってみたいとは思っていたのですが、ネットを探してもwindowsだとProが必須でHomeは使えないということだったので諦めていたのですが、たまたま検索で「Install Docker Desktop on Windows Home」を見つけて、windows Homeでも使えるようになったということを知りました!
で、早速インストールしてみました。なお、Homeでもシステム的な要件があって、満たしていないと利用できません。
- windowsのバーションが1903以上
- wsl2が使える
- slat対応の64bitのCPU
- 4GBメモリ搭載
- BIOSレベルでの仮想化対応
まずはインストール
インストール手順は以下のとおり。
- windowsのバージョンを最新の20H2に更新
- windowsの設定を変更
- wsl2のインストール
- linuxのインストール
- docker desktopのインストール
インストール後、実際にwindows Homeで使っていて困った点についても言及しますが、まずは、インストールについて。
1)windowsのバージョンを最新の20H2に更新
現時点でのwindowsのバージョンは、スタートアイコンで右クリックすると出てくるメニュー内の「システム」で確認できます。
windowsのバージョン更新はwindows updateで順次更新します。「更新プログラムの確認」で20H2が自動的に提供されない場合、このURLの「今すぐアップデート」から更新することも可能です。
2)windowsの設定を変更
「コントロールパネル」→「プログラム」と進み、「プログラムと機能」の欄にある「Windowsの機能の有効化または無効化」に進む。
「Linux用Windowsサブシステム」と「仮想マシンプラットフォーム」にチェックを入れてOKを押す。
3)wsl2のインストール
このページにある手順どおりに、64bit用の最新のWSL2 Linux カーネル更新プログラムをダウンロードしてインストールします。インストール後はwindowsを再起動します。
4)linuxのインストール
Microsoft storeアプリを開き、Linuxをインストールします。特に制限はないようですが、今回は、Ubuntu20.04 LTSをインストールします。
インストール後、PowerShellなどでwslコマンドで、デフォルトでwsl 2を利用するように設定しておきます。
wsl --set-default-version 2
正しく設定されたかどうかの確認は以下でします。
wsl -l -v
ubuntu20.04に「*」がついてない場合は、
wsl --set-version Ubuntu-20.04 2
を発行します。
5)docker desktopのインストール
Docker HubからDocker Desktop Installer.exeをダウンロードしてインストールします。しばらくするとインストールが完了します。インストール中にwsl2に関する設定を確認されたら利用する設定をします。
実際に使ってみて
上記まででインストールは完了です。以下にインストール後に使っていて困ったことを書いておきます。
●1)Docker Desktopの起動が遅い
dockerを利用するには、まず、docker desktopを起動する必要があります。起動していないとpowershellなどでdockerコマンドを発行してもエラーになります。
docker desktopが起動しているかどうかの判断は、メニューバーのDockerアイコンにマウスを持っていくと表示されるステータスでできます。ステータスが「Docker Desktop is running」と表示されていれば起動しています。自分は、せっかちなので、「Docker Desktop is starting」とかでもいけるのかと思い、dockerコマンドを発行してエラーになったりして困りました。(笑)
●2)PCが異常に重くなる
dockerで、イメージをとってきたり、コンテナをつくったりと遊んでいて、PCが異常に重い状況に遭遇しました。タスクマネージャで調べたところ、vmmemというプロセスが大量のメモリを使っているようです。
ネットで調べたところ、wsl2では、デフォルトではホストメモリの80%を使う設定になるらしく、これが原因で、この状態が発生しているようです。
問題が発生した時点でキャッシュを廃棄したり、wsl2を再起動する方法があるようですが、問題が起こった時点では異常に重くてそういった対応もできない感じでしたので、wsl2のメモリサイズを固定する方法を利用しました。
wsl2のメモリサイズを固定する方法
windowsのC:\Users\<yourUserName>\ディレクトリ以下に「.wslconfig」ファイルがあるか確認します。
なければ作成します。このファイル内に以下のように記述すれば完了です。
[wsl2]
memory=3GB
なお、これ以外にもswapなどの設定もできます。詳しくはこちらのURLを確認してみてください。
で、結局、Dockerどうよ?
上記まですると快適にdockerを利用できます。以前はvirtual box + vagrantを利用して仮想環境を作って開発していたのですが、dockerを使いだすともう戻れません。(笑)
widows homeでvagrantを使っていてなんだかなぁと思っている人の参考になれば幸いです。