SSブログ

Docker for MacでなんでUbuntuが動くのか? [MacOSX]

以前にDocker for Macを入れた際に、Ubuntuが動くのはなぜかと疑問に思っていました。chrootの発展形がコンテナ仮想化とするなら、Macのコンテナ上でLinuxが動くのは妙な話なんじゃないかと。

https://qiita.com/kirikunix/items/33414240b4cacee362da

ここではLinux同士を使っている場合に、ABIという仕組みがあるからある程度は大丈夫なんだよ、という説明でした。しかし、それではMacの説明がつかない。


下のコメント欄にその言及がありました。

https://docs.docker.com/docker-for-mac/docker-toolbox/#the-docker-for-mac-environment HyperKit という仮想化ツールでdockerホストとなるVMを作り、 そいつと /var/run/docker.sock を通してやり取りをする、という仕組みのようです。 macOSにABIを被せているわけではなく、Linuxを別個に立てているのですね


これだったらコンテナ仮想化じゃなくて、ハイパーバイザー型と大して違わないやん。ただchroot的なディレクトリの利用はしているかもしれないけど。でも、Mac上のUbuntuは60GBの大きさしかなかった気がするなぁ。Dockerはコンテナ仮想化という認識は変えないといけないかもしれない。


ここを直接読む。
https://docs.docker.com/docker-for-mac/docker-toolbox/#the-docker-for-mac-environment
うわ。最初の最初にすごいこと書いてあったw。

It also installs VirtualBox.


VirtualBox入っとるやんw。というかDockerを上にかぶせる意味あるん?
あ~Docker Toolboxの方なのか。Docker Desktopの前にあったやつみたい。

Docker Desktop uses HyperKit instead of Virtual Box. Hyperkit is a lightweight macOS virtualization solution built on top of Hypervisor.framework in macOS 10.10 Yosemite and higher.


やっぱハイパーバイザー使っとるわ。他のDockerはコンテナ仮想化かもしれないけど、for Macは純粋なコンテナ仮想化じゃないな。はじめはVirtualBoxを使う気になっていたけれど、DockerがHypervisorであれば使う意味があまりないんじゃないかと思ってきた。というか、macのコンテナを作ろうとしていたから、Linuxを入れるのを前提にしているんじゃどっち使ってもあんまり変わんないかもな。というか、慣れているVirtualBoxの方がいいのかも。

というかMacで開発しようと思ったら、コンテナを使えないとしたら既存の環境を汚すしかないのかとちょっと落胆。それが嫌だからコンテナを使おうと思っていたのに、Dockerのバカぁ。って、DockerでMacのコンテナ使えるかどうか調べてないですが…。

コメント(0) 
共通テーマ:パソコン・インターネット

コメント 0