CommentOut

WindowsでDockerDesktopを使う時に必要な「WSLコマンド」とは WindowsでDockerDesktopを使う時に必要な「WSLコマンド」とは

WindowsでDockerDesktopを使う時に必要な「WSLコマンド」とは

公開日:  最終更新日:

私はDocker Desktopを使う時に出会ったコマンドなのですが、他の用途でも使うのでしょうか?
あまり詳しくないので、調べたことをまとめます。

wslコマンドとは

Microsoft Learnによると、「WSL」はWindows Subsystem for Linuxの略だそうです。

同ページにこんな記述が・・・
何かあったのかな・・・

WSLのバージョンについて

WSLにはバージョンがあって、WSL1とWSL2が存在しているようです。
これらの違いは内部の仕組みがだいぶ違っているようで、用途によって使い分ける必要がありそうです。

WSL1はVMWareやVirtualBoxなどでLinux仮想環境を作る時に使用し、WSL2はDockerでLinux仮想環境を作る時に使用するって感じでしょうか。
どうして2つのバージョンを用意する必要があるかというと、仮想化技術の違いによるものと思います。

VMWareやVirtualBoxなどのホスト型仮想化ソフトウェア

WSL1で使用されるVMWareやVirtualBoxはホスト型と呼ばれる仮想化ソフトウェアです。
ホスト型仮想化ソフトウェアはホストOS(Windowsとか?)の中で、仮想化OSを仮想環境の中で起動させる仕組みです。
「OSごと仮想化してしまおう」という考え方です。

Windowsを動かしつつ、WindowsからLinuxを起動して使うようになるので、OSを二重で動かしているような状態になり、マシンの負荷が増大してしまうデメリットがあります。

エミュレーター的な感じかなって思います。
Android StudioでAndroidエミュレータ起動するとめちゃくちゃ遅くなるので、そういうイメージしてます。

Dockerはコンテナ型仮想化ソフトウェア

対して、Dockerはコンテナ型と言われています。
Dockerでも仮想環境を作るのですが、OSはホストOSを利用します。
“アプリケーションの実行環境だけを仮想化しよう”という考え方です。

そうなると”Dockerを使うにはホストOSがLinuxでなければいけない。WindowsPCではDockerが使えない。”と思うんですが、WindowsにはDocker Desktopがあって、Docker Desktopを使う時には、WSL2コマンドを使用します。
WSLはWindows Subsystem for Linux、WindowsにLinuxを組み込むのがWSLなので、WSLがあることで、DockerがWindows上で動くようになると言えます。

Microsoft Learnには「WSL2 は、Linux ディストリビューションをマネージド VM 内の分離されたコンテナーとして実行します。」と記載されています。
詳しいことはわからないけど、WSL2はWindowsでDockerを使えるようにする技術なんだろうと認識しておきます。

宣伝
WordPressサイトのテンプレート編集やトラブル対応、バグ修正、簡単なJavascriptの作成(カルーセルやバリデーション等)など、小規模なスポット対応を受け付けております。
もしお困りごとがありましたら、お問い合わせフォームよりご相談ください。

この記事を書いた人

uilou

uilou

プログラマー

基本的に、自分自身の備忘録のつもりでブログを書いています。 自分と同じ所で詰まった人の助けになれば良いかなと思います。 システムのリファクタリングを得意としており、バックエンド、フロントエンド、アプリケーション、SQLなど幅広い知識と経験があります。 広いだけでなく、知識をもっと深堀りしていきたいですね。