回答編集履歴
1
説明文をアップデートさせました
answer
CHANGED
@@ -1,9 +1,17 @@
|
|
1
1
|
> ・仮にMacOSにDockerを入れ、Ubuntuのimageをpullしてコンテナを立ち上げた場合、コンテナの中で動いているOSは何なのでしょうか?
|
2
2
|
|
3
|
+
厳密に言うと何もないが正解で、親のOSであるLinuxで動かしています。
|
3
|
-
Linuxで
|
4
|
+
なのでDockerはOSがLinuxでなければインストールすら出来ません。
|
4
|
-
DockerはLinuxの同じCPUならば、違うディストリビューションでもマシン語で書かれている実行ファイルのフォーマットが同じ形式であり、適切な依存ライブラリを渡してやれば動くでしょという思想です。
|
5
5
|
|
6
|
+
実はLinuxは共通仕様として**マシン語で書かれている実行ファイルのフォーマットが同じ形式**です。
|
7
|
+
違うディストリビューションでも動作し、適切な依存ライブラリを渡してやれば動作します。
|
8
|
+
|
9
|
+
ハードディスクの中身を完全に一致させてバイナリ叩いた場合、
|
10
|
+
Ubuntuっぽいディレクトリ構造ならUbuntuっぽく、
|
11
|
+
CentOSっぽいディレクトリ構造ならCentOSっぽく動作するでしょ?という所が根拠になっています
|
12
|
+
(マシン語の命令が異なるARM等の特殊なCPUの場合、多くのDockerHubで提供されているコンテナやイメージは利用不可能になります)
|
13
|
+
|
6
|
-
MacOSは
|
14
|
+
MacOSはLinuxじゃないのでDockerは起動出来ません。
|
7
15
|
なのでDocker for Macというアプリケーションをインストールした時に、
|
8
16
|
準仮想化技術を使ってシンプル高速なLinuxを裏で仮想マシンとして動かして、その仮想マシン内でDockerを利用しています。
|
9
17
|
|