web-dev-qa-db-ja.com

単一のUbuntuホスト上のKVMおよびDocker?

現在、単一のホームラボサーバーを使用して、いくつかのVMを実行しています。コンテナの使用への移行を開始したいのですが、VMも引き続き必要です。私の質問は、UbuntuをホストOSとして実行し、KVMのニーズにVMを、コンテナーのニーズにDockerをインストールして実行することです。
移動を開始する前に、単一のUbuntuサーバーでそれらがうまく共存するかどうかを知りたいと思います。

あなたの考えを感謝します!

1
user838213

はい、KVMゲスト(KVMを使用してQEMUで実行されているWindowsまたはOSXなど)とDocker(コンテナーを実行しているDocker CEなど)は、同じUbuntuインスタンスで同時に正常に実行されます。

あなたの質問は基本的に私のワークロードについて説明しています。現時点では、2つのAndroidエミュレーター(LinuxではKVMであるハードウェア仮想化アクセラレーションを使用)、Windows 10 QEMUゲスト、OS X High Sierra QEMUゲスト、およびDocker(これらの手順 https://docs.docker.com/install/linux/docker-ce/ubuntu/ を使用してインストール)で、Hello Worldの例を実行し、Ubuntu 18.04で同時に実行します。ホスト。

Linuxの仮想マシン(QEMUなど)はハイパーバイザー(QEMUの場合はKVMですが、VirtualboxとVMWareは異なるハイパーバイザーを使用)を使用してコンピューターのハードウェアリソースを使用し、DockerはLinuxネームスペースを使用して単純に現在実行中のカーネルで使用可能なハードウェアリソースを使用しますが、メインオペレーティングシステムから分離します。

このように、KVMゲストとDockerは実際には別々のテクノロジーを使用して実行され、カーネルレベルで相互に実際には相互関係さえありません。これは、異なるハイパーバイザー(たとえば、QEMU + KVMとVirtualBox)を同時に使用しようとする場合とは対照的です-一度に1つのタイプのハイパーバイザーしか実行できないため、機能しません(複数実行することもできますが)各タイプのハイパーバイザーからのVM​​)。

テクノロジーの詳細については、ここで素晴らしい説明があります: https://stackoverflow.com/questions/16047306/how-is-docker-different-from-a-virtual-machine

3
Mike Hardy

目標を達成するための危険信号や注意を示唆する情報は見つかりませんでした。

これについて少し調べたところ、KVMのカーネルコンポーネントは、2.6.20カーネル、18.04 LTSに4.15カーネルが付属して以来、メインラインLinuxに組み込まれていることがわかりました。 KVMはUbuntu 18.04 LTSにうまく統合されています。

UbuntuのDockerによると、Dockerは最低限のサーバーとVM向けに最適化されています。

KVM および Docker について詳しく読むことができます。

1
xtrchessreal