Dockerの勉強を始めたばかりですが、非常に混乱していることがあります。DockerのWebサイトで読んだように、コンテナは仮想マシンとは異なります。私が理解したように、コンテナは単なるサンドボックスであり、その内部で隔離されたファイルシステム全体が実行されます。
また、コンテナにゲストOSがインストールされていないことも読みました。代わりに、基盤となるOSカーネルに依存しています。
それはすべて大丈夫です。私が混乱しているのは、オペレーティングシステムにちなんで名付けられたDockerイメージがあるということです。Ubuntu、Debian、Fedora、CentOSなどの画像が表示されます。
私のポイントは、これらの画像は実際には何ですか?Debianイメージに基づいたコンテナの作成と、仮想マシンの作成とDebianのインストールとの違いは何ですか?
コンテナにはゲストOSがインストールされていないと思っていましたが、イメージを作成するときは、1つのOSにちなんで名付けられたイメージに基づいています。
また、実行時に見た例ではdocker run ubuntu echo "hello world"
、UbuntuでVMをスピンアップし、コマンドを実行させているようecho "hello world"
です。
同じ方法で、docker run -it ubuntu /bin/bash
UbuntuでVMをスピンアップし、コマンドラインを使用してアクセスしているようです。
とにかく、オペレーティングシステムにちなんで名付けられたこれらのイメージは何ですか?それらのイメージの1つでコンテナを実行し、対応するゲストOSでVMをスピンアップすることはどのように違いますか?
カーネルをホストOSと共有するだけで(したがって、ハードウェアを仮想化することなく、基盤となるマシンのハードウェアリソースにアクセスできます)、コンテナ上の異なるシステムのファイルとバイナリを順番に使用するという考えです実行したいアプリケーションをサポートするには?