ケ・セラ・セラ

妄想とか備忘録とか思いつくまま

WSL2 と Docker (compose)ーその1

WSL2でWindowsでも真っ当なLinux環境が使える!という情報に期待して色々触り始めて時間が経った事で、分かってきたり更に悩みが深くなったりしたことを書いてみます。

仮想マシン上を含むピュアLinuxな環境だと発生しない悩み事が殆どです。

今回は、

Docker (compse)は、「Docke Desktop for Windows based on WSL2」にすべき?WSL2上のUbuntuUbuntuパッケージで導入すべき?

です。

ネット上の情報、特に個人の記事を見ていると、この2つを比較した上でどちらを使っているっという内容のものは殆ど無く混在しているので、検索結果を通しで見ているとちょっと混乱してしまいます。導入するだけであればどちらも可能。こういう時はまず公式。

docs.docker.com

WindowsであればやはりDocker Desktop for Windows。選択肢としてもUbuntu on WLS2へのパッケージ導入の言及はないですね。

以下のページ、比較ではなく筆者の方ご自身がやりたいことを時系列に実施されている中で両方のパターンを言及されていて分かりやすかったです。

hnakamur.github.io

WSL2で動くUbuntu(MS的にはアプリ)は公式のDesktop版でもServer版でもなく、WSL用ディストリビューションで、initプロセスはデーモン起動する仕組みの部分、今時ですとsystetmdが置き換え(先祖返り?)られていている様です。

故に、任意のサービス系パッケージはインストールはできれども、プート時にサービス起動できない。

なので、Ubuntu on WSL2にDebianパッケージでdocker (compose)を導入すると、Docker Daemonの手動起動が毎回必要になるという不便があるというのが現状の様。

systemdを動かすのも実験的に好奇心を満たす意味では面白そうですが、安定運用観点だとアップデートにも影響がありそうで難あり。

Ubuntu on WLS2にdockerをパッケージインストールすると「動かなかった」で終わっているドキュメントがネット上に多数あったのですが恐らくEngine自体の起動ができていなかったんだろうと推察されます。

Windows 10でDocker (compose)をハック的ではなく、通常運用で使うなら「Docker Desktop for Windows」が良さそうですね。