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 件のコメント:
コメントを投稿