Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Docker Desktop for WSL2 を使い快適にWindowsでサーバ開発をしよう!

More than 1 year has passed since last update.

はじめに

私は元々Microsoft関連の案件やWindowsゲーム、コンシュマーゲーム、カーネル開発などを行っていました
時々サーバ開発も行いました
TCP/IPを使って直接サーバをかく場合はVisualStudioでコードを書いたり、それをgcc対応したりしていましたが
時代がWebフレームワークによる軽量開発が多くなり、WindowsにそのたびにApacheや言語をインストールして開発
コマンドプロンプトが貧弱なのでCygwinを使って
開発環境ごとにHDDを作ってHDD交換しながら仕事をしていた時もありました
しかし、WindowsでWeb開発環境を完成させるのは少し疲れます。本番環境がLinuxの場合は予期せぬ問題がおこります

私は2011年にMacbookProを買い、それ以降はMacでサーバ開発を行っていました
MacOS XはNetBSDベースのLinuxに優しいOSで非常に開発がしやすくなりました
MacPortsで簡単に環境構築できるし、Chefで環境を簡単に構築できる

そしてVMの時代がきて、Dockerの時代です
その頃 MacbookProが調子悪くなりWindowsへの乗り換えを行いました
Dockerがあるので Windowsでほぼ問題なくサーバ開発が出来ました!
ところが、パスの問題やシェルの問題などがあり、それを1つずつ対応していき
やっと問題なく開発できるようになりました

ここまでが過去の記事です
https://qiita.com/YukiMiyatake/items/73c7d6c4f2c9739ebe60

今回はWSL2を導入し、より快適にするつもりです

WSL2とは

Windows Subsystem Linuxの後継者です
WSLでは、LinuxコマンドをエミュレーションしてWindowsで動かしていたため
一部のソフトウェアが動きませんでしたnmapやtcpdumpなど
その動かないソフトウェアの一つがDockerです
そのため、Windowsでサーバ開発するには、WindowsにDockerをインストールし、それを使う必要がありました

WSL2はエミュレーションではなく、Hyper-V上で完全なLinuxが動くので、すべてのソフトウェアが動きます
当然、Dockerも動きます
試してみましょう

導入

WSL2のインストール

下記ドキュメントどおりにすればインストールできますが注意点が色々あります
https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-install

まず、Hyper-V上に構築されるので、Windows10 Pro 64bit 以上が必要と思っていましたが
どうやらHomeエディションでもWSL2はインストールできるそうです
https://devblogs.microsoft.com/commandline/announcing-wsl-2/

Windows 10ビルド 18917以降
なので、現状は 評価版のWindowsが必要です
そして現在私はOSのシャットダウンがだいたい失敗するようになりましたw
SnapCrab_NoName_2019-10-23_12-29-40_No-00.png

VirtualBoxなどHyper-Vと併用できないソフトウェアは使用できなくなる

そして、私は上記の手順でWSL2を導入しましたが、エラーでWSLが起動しなくなりましたSnapCrab_NoName_2019-10-23_12-29-6_No-00.png

ネットで色々な対処法がありました
OSのバージョンも3個ぐらいためしたけどダメで
私の場合は、Docker for Windowsをアンインストールで動くようになりました
そうですね、WSL2にDockerを入れるので Docker for Windowsは邪魔かもしれません

Dockerのインストール

https://www.docker.com/blog/5-things-docker-desktop-wsl2-tech-preview/

今回は Docker for Windowsではなく、Docker Desktop for WSL2 を使います
まだプレビューですが、ディスクI/Oが高速になったり色々なメリットがあるそうです
また、WSL2上にLinuxのDockerもインストールできるはずですが、今回は使いません

WSL2の導入は終わっているのでDocker Desktop for WSL2を導入します
上記より

Finally, download the Tech Preview Docker Desktop for WSL 2 Technical Preview

の部分をクリックすればダウンロードできます

そして注意点は、OSもDockerもPreview版なので不具合が多いです
私の場合はOSをシャットダウンしてもほぼ失敗して強制電源OFFしていますし
DockerもCheck Updateするとなぜかディスク容量がたりないと言われ、Dockerがアンインストールされておわります

念のため、WSL2のDockerを消しておきます。

bash
$ apt remove docker-ce
$ apt remove docker-ce-cli
$ apt remove docker-engine
$ apt remove docker-engine-cs
$ apt remove docker.io

また、 DOCKER_HOST を設定している場合は、その環境変数を削除しておきます

Dockerを起動し、メニューより WSL 2 Teck Previewを開く

SnapCrab_Settings_2019-10-23_15-33-38_No-00.png

StatusからDockerをStartさせると、WSL2から Dockerコマンドが使えるようになります!

いつものように docker run hello-world で確かめてみます

SnapCrab_選択yuki@DESKTOP-NF7SQ0F cWINDOWSsystem32_2019-10-23_15-37-19_No-00.png

動きましたね!
一通り仕事やOSSで使っていたdocker-composeも動きました
問題なさそうですね!

この後 無茶苦茶仕事した。

YukiMiyatake
C++が喋れる ゲームプログラマ インフラ、サーバ、UNITY、ゲームエンジンが最近多いな・・ MONA: MPpuEnmqDYBCxSZyG5cBDt6UWtXczmRmkn BTC: 13JpgsF3n6K2WhjEeUuUUqS7V71gWdFx56 BCH: 18q6rfi9ynyTgynrB8tJ2eSDLPQM32RZk5
http://murasame-labo.hatenablog.com/
murasame
ゲーム、エンタメ、サーバインフラ等 少人数で技術力の高い仕事をする会社
http://murasame-lab.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away