前提・実現したいこと
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でインストールするのはまっとうなやり方でしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/12 04:48