2021年4月11日日曜日

WSL docker ubuntuを入れる意味

 Windows10に、WSLを入れて、dockerを使っています。

この環境で、疑問に思っていたのは、なぜ、別途、ubuntuを入れる例が多いのかでした。


WSL2を入れれば、dockerは動きます。

WSLのubuntuを、別途、導入しなくても、問題はありません。

VSCodeを使い、新たに、コンテナを起動し、その中で開発を進めれば良いだけです。


ubuntuを導入する例が多いのは、昔の名残なのかなと思っていました。


ubuntuを導入する意味が理解できたのは、Windows10で作成したdockerを、linux上で実行したときでした。

動きません。

ファイルの権限の問題で、コンテナの実行に失敗しました。

Windowsのファイル権限の仕組みと、linuxでのファイル権限の仕組みが異なるために、ソースをWindows側に置き、コンテナ内から利用する設定にしていると、windowsでは動くのに、linuxでは動かないということになります。


過去の日記

https://cikou.blogspot.com/2021/04/dockervolume.html



ここで、ubuntuを導入する意味が分かりました。

ubuntu側に、dockerのソースを置いておけば、dockerの開発時も、dockerの本番時も、同様に扱えるのだと理解できました。


このためには、dockerの設定で、「WSL INTEGRATION」から、ubuntuを有効にする必要がありました。


これで、Dockerfileは、ubuntuシステム内に置いて、ubuntu内のVSCodeを起動。

そのVSCodeを、Windowsからリモートで操作。

つまり、WindowsのVSCodeから、ubuntun内のVSCodeを操作する。

ここで、開発に使うコンテナを起動し、その中で、VSCodeを使うことができました。

Windows、ubuntu、コンテナ内と、3箇所に、VSCodeを入れる流れになりますが、後者の2つは、ほぼ、自動的に入りますから、面倒ではありません。


これで、ようやく、WSLとdockerの関係性が理解できました。


0 件のコメント:

コメントを投稿