web-dev-qa-db-fra.com

KVM et Docker sur un seul hôte Ubuntu?

J'ai un seul serveur de laboratoire à domicile que j'utilise pour exécuter quelques ordinateurs virtuels à l'heure actuelle. J'aimerais commencer à migrer vers une utilisation en conteneur, mais continuerai également à avoir besoin de machines virtuelles. Ma question est donc la suivante: puis-je utiliser Ubuntu comme système d'exploitation hôte, puis installer et exécuter KVM pour mes VM et Docker pour mes besoins en conteneurs?.
Avant de commencer à déplacer des choses, j'aimerais savoir si elles coexisteront bien sur un seul serveur Ubuntu.

Appréciez vos pensées!

1
user838213

Oui, KVM invités (par exemple, Windows ou OSX s'exécutant sous QEMU, utilisant KVM) et Docker (par exemple, des conteneurs en cours d'exécution Docker CE) fonctionnent correctement en même temps sur la même instance Ubuntu.

Votre question décrit essentiellement ma charge de travail. Actuellement, j'utilise deux émulateurs Android (utilisant l'accélération matérielle de la virtualisation, qui est KVM sur Linux), un invité Windows 10 QEMU, un invité OS X High Sierra QEMU et Docker (installé via ces instructions https://docs.docker.com/install/linux/docker-ce/ubuntu/ ) avec leur exemple hello world en cours d'exécution, le tout en même temps sur Ubuntu 18.04 Hôte.

L’explication concise est que les machines virtuelles (QEMU, etc.) sous Linux utilisent un hyperviseur (KVM dans le cas de QEMU, mais que Virtualbox et VMWare utilisent des hyperviseurs différents) pour utiliser les ressources matérielles de votre ordinateur, tandis que Docker utilise les espaces de noms Linux pour utilisez les ressources matérielles disponibles de votre noyau en cours d'exécution, mais séparées de votre système d'exploitation principal.

De cette manière, KVM invités et Docker s'exécutent à l'aide de technologies distinctes et n'interagissent même pas les uns avec les autres au niveau du noyau. Ceci est différent du cas où vous essayez d’utiliser différents hyperviseurs (par exemple, QEMU + KVM et VirtualBox) en même temps. Cela ne fonctionne pas car vous ne pouvez exécuter qu’un seul type d’hyperviseur à la fois (même si vous pouvez en exécuter plusieurs). Ordinateurs virtuels de chaque type d’hyperviseur).

Il existe d'excellentes explications sur les détails techniques ici: https://stackoverflow.com/questions/16047306/how-is-docker-different-from-a-virtual-machine

3
Mike Hardy

Je n'ai trouvé aucune information suggérant des signaux d'alarme ou une mise en garde pour atteindre votre objectif.

J'ai un peu étudié la question et découvert que le composant du noyau de KVM était intégré à Linux principal depuis le noyau 2.6.20, la version 18.04 de LTS étant livrée avec le noyau 4.15. KVM est bien intégré dans Ubuntu 18.04 LTS.

Selon Docker pour Ubuntu, Docker est optimisé pour les serveurs et les machines virtuelles de base.

Vous pouvez en savoir plus sur KVM et Docker respectivement.

1
xtrchessreal