探検


Dockerが仮想マシンなしでネイティブで動くのまだ?

2018/07/09(月) 12:29:21.85ID:lzqx/bD20
前提知識

・DockerはLinuxカーネルの機能を使う
・macOS、WindowsはLinuxカーネルではない
・だからDockerを動かすため仮想マシンが必要
・Windows 10にWSL(windows linux subsystem)機能が登場
・WSLはLinuxカーネルをWindowsでエミュレートすることでLinux環境を作り出す
・Windows上でUbuntuなどのディストロがそのまま動く

何が起きたか

・Dockerは高いLinuxカーネル互換性が必要なので今まで動かなかった
・いつの間にか動くようになっていた

WSL上でDocker Engineが動くようになっていたっぽいという話
https://qiita.com/yanoshi/items/dcecbf117d9cbd14af87

これにより何が変わったか?

・仮想マシンによる制約がなくなった
・具体的にはメモリ使用量を仮想マシンに割り当てることなく、必要な文しか使わなくなった
・WindowsはもはやLinuxを取り込んだと言っても変わらない
・macOSはUnixだが、WindowsはLinux
・今の世の中、UnixよりもLinuxのほうが使われている
2名称未設定
垢版 |
2018/07/09(月) 12:54:43.83ID:N9EycE8o0
ツーカ、Dockerって何?

仮想機能の何か、ツーのはなんとなくわかるが
VMwareなんかと何がどう違うんだ?
2018/07/09(月) 13:47:03.85ID:lzqx/bD20
>>2
VMwareなんかは、ハードウェアをエミュレートしている
仮想マシンを作り出すという意味の仮想機能
Dockerは実行環境を仮想化するもので、仮想マシンとは全く違う

同じアプリでもOSが違ったら動かなくなったりするだろ?
それはアプリ以外の部分が違うから

Dockerはアプリにそのアプリ以外の部分=実行環境を
くっつけてしまうもの(ただしLinuxカーネル部分は除く)
だから違うOSでもアプリは問題なく動くようになる

仮想マシンは、仮想的なマシン上にOSをインストールしてアプリを動かすが、
Dockerの場合はアプリに実行環境をくっつけただけ
だから普通にアプリを実行しているのと同じでそのOS上で動く。
ようするにOSが変わっても問題なく動くアプリが作れる

といってもそれはLinuxの場合の話でWindows・Macだと
裏でこっそり仮想マシン+Linuxが動いていた
それがWindowsでは、WSLによるLinuxカーネル互換機能に
よって仮想マシン+Linuxなしで動くようになった。
レスを投稿する


ニューススポーツなんでも実況