orangeitems’s diary

40代ITエンジニアが毎日何か書くブログ

Windows Subsystem for Linux(WSL)でやってみたいことメモ

f:id:orangeitems:20190114013420j:plain

 

構想メモ

Windows Subsystem for Linux(WSL)の昔の記事などを探ると、登場時はいろいろと問題があったようですね。最近WSL + Ubuntu + Dockerがまともに動くことがわかったので、時間があるときにいろいろやってみたいと思っています。

 

やってみたいことリスト

CentOS7のコンテナを入れてまともに動くかテスト

これ普通に動いたら、仕事で活躍しそう。WSLにおいては今UbuntuかSuseしか実質選べないのですが、Fedora待たなくてもDocker使えばCentOS動いちゃうんじゃないかと。本来はコンテナはできるだけ軽量化して1プロセスのために使うのが基本なのですが、むしろオンプレを詰め込んでみて、どれだけWSLで動けるか試してみたいです。

 

イメージを作ってみる

まだ時間が取れてなくて、docker run hello-worldしか試していないわけですが、イメージをいろいろ作って実用に足るか確認してみたいです。ここ最近、こういう人柱的なシナリオがなくなっていたので、オイラワクワクしてきたぞ。

 

WindowsのCドライブのディレクトリーを永続ストレージとしてマウントしてコンテナを起動してみる

これできると、もはや開発環境になると思いますし、開発用Linuxサーバーがいらなくなるんじゃないかという予感。ドキュメント入れ替えをWindowsローカルからエクスプローラでやるという・・。なお、普通に/mnt/c/temp直下にシンボリックリンク張ればいいだけのような気もする。

 

WordPressをコンテナで動かして、どれくらいメモリ使うか確認する

MySQLとapache+PHPでどれだけローカルのメモリを消費するか。軽量でかつ動くんだったら開発環境としては最優秀では。

 

crontabでバッチができるか

WSLはbashがwindowsで動くだけという先入観があったのですが、実はもうlinuxそのものなんじゃないかという気がしたのでテストしてみたい。特にcentosのコンテナで動かせればなんでもできる気がする(本来のコンテナによるマイクロサービスに触れる前に、普通のlinuxとして操ってみたい)。

 

多分にサポート外だけど、開発環境構築が発展しそうな発想

Windows 10にHyper-V入れてCentOS入れて、そこにapache + php + mysql/postgresql的な開発環境構成って多いと思うのですが、いかんせんメモリ食いで。とはいえ、WSLは純粋なLinuxではないわけだし、サーバーとしてはMicrosoftも使ってほしくないでしょうから何やらあるんだろうと思ってはいます。まあでも、ダメならダメだったと報告するのも味があるし、世の中の役には立つかなと・・。

今現在休日進行中で時間が取れないのですが、目標ができてブログ的には少し面白くなってきました。パソコン好きとしてはサーバーサイドに特化したKubernetesより身近ですし壊れてもいいかなという気軽さがあります。

お楽しみに。

 

追記

情報収集ベースでは、WSLではiptablesがサポートされていないことで、Docker Composeが使えなくて困る、という話があるようです。

海外の情報も見つつ、実際に試しながら、最終的な結論を出していきたいと思います。

 

追記2

私のデスクトップで試しているようですが、docker composeはどうしてもiptablesで失敗しますね・・。

$ sudo docker-compose up
Creating network "composetest_default" with the default driver
ERROR: Failed to Setup IP tables: Unable to enable NAT rule: (iptables failed: iptables --wait -t nat -I POSTROUTING -s 172.23.0.0/16 ! -o br-ce8c212419c2 -j MASQUERADE: iptables: No chain/target/match by that name.
(exit status 1))

WSL自体はLinuxカーネルで動いていないので、iptables等のネットワーク系のコマンドがまだまともに動かないことが原因のようです。2018 October Update(バージョン1709)および、Ubuntu 18.04LTSの組み合わせでかつapt-get upgradeもやってみたのですが無駄でした・・。本件の結果報告は、状況が変わってからになりそうで時間がかかると思います。何かいい方法があればいいけれど・・。