質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
WSL(Windows Subsystem for Linux)

WSL (Windows Subsystem for Linux) は、Windows10のOS上でLinux向けのバイナリプログラムを実行可能にする機能です。また、WindowsOSのAPIを用いた仕組みを提供しており、Linux側からWindowsOSへのファイルアクセスもできます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

解決済

wls2とDockerの関係性を知りたい

satouhiroshi
satouhiroshi

総合スコア1

WSL(Windows Subsystem for Linux)

WSL (Windows Subsystem for Linux) は、Windows10のOS上でLinux向けのバイナリプログラムを実行可能にする機能です。また、WindowsOSのAPIを用いた仕組みを提供しており、Linux側からWindowsOSへのファイルアクセスもできます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

2回答

0評価

3クリップ

2413閲覧

投稿2020/12/11 17:12

前提・実現したいこと

OS:Windows10 Pro

WindowsでDockerを勉強するために、wsl2を利用できるようにしました。
wsl2とは何かについて私なりに調べたところ、
0. WindowsでLinuxのカーネルが動く
0. Hyper-Vではないけど、特別な仮想マシンが動いてLinuxぽいのが動いている
※だから、Hyper-Vマネージャーで見ると仮想マシンは起動していない

上記のように、Windows環境に特別な仮想マシンが起動されて限りなくLinuxに近いOSが動いていると理解しています。
そして、Docker for Windowsもインストールしました。
以上を踏まえていくつか疑問点があります。

疑問その1

wsl2を有効にしてDocker for WindowsをインストールするとPowerShellから

docker pull httpd

とコマンドを打つとhttpdのイメージがダウンロードできてrunで動きます。
dockerの開設サイトを見ると、よくMicroSoftStoreよりUbuntuをインストールしていますが、
なぜUbuntuをインストールしているのでしょうか?
特になくてもdockerが動くと思うのですが、インストールする理由は何があるのでしょうか?

疑問その2

httpdのDockerfileを見るとFromがdebianになっています。
phpやmysqlなどWeb系で利用しようなコンテナはなぜかdebianになっています。
私はcentos派なのですが、centpsでhttpdのWebサーバーのコンテナを作るのはあまりやらない方法なのでしょうか?

疑問その3

Dockerのコンテナの概念についてですが、基本的にはプロセス単位でコンテナを作成したほうが良いといろいろなサイトに書いていました。
例えばWebの場合だと、
0. httpdのコンテナ(apache)
0. phpのコンテナ
0. mysqlのコンテナ

で分けようかなと考えております。
そこでふと疑問に思ったのですが、httpdやphpやmysqlはソフトウェアなのでOSが無いと動かないと思います。
Dockerの場合はホストOSのカーネルを利用するからhttpdのコンテナなどにはOSが入っていないので、動作が高速になっているのだと思います。
「疑問その2」とも重複するのですが、例えばhttpdのDockerfileにはFromがdebianと書かれています。

今回の場合だとホストOSはwsl2の仮想マシンだと思うので、debianがどこにも無い状態だと思います。
Linuxのディストリビューションはカーネルは共通だと知ったので動くと思うのですが、「apt-get」などdebian独自の機能はどこで動くのでしょうか?
実はdebianのOSがhttpdをpullするとどこかにダウンロードされてくるのでしょうか?

疑問その4

疑問その2/その3とも重複するのですが、私はcentos派です。
centosでhttpdを動かそうとした場合は、

docker pull centos

でcentosのイメージをrunしてyumでhttpdをインストールすればできるのかなと思いますが、
dockerはプロセス単位のマイクロなコンテナを起動するから高速だと思っているので、
centosの中にhttpdを入れるのはcentosのOSが無駄なリソースになっていて、dockerのメリットがあまりないのかなと思うのですが、centosのイメージにhttpdをyumでインストールするのはまっとうなやり方でしょうか?

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

WSL(Windows Subsystem for Linux)

WSL (Windows Subsystem for Linux) は、Windows10のOS上でLinux向けのバイナリプログラムを実行可能にする機能です。また、WindowsOSのAPIを用いた仕組みを提供しており、Linux側からWindowsOSへのファイルアクセスもできます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです