web-dev-qa-db-fra.com

Puis-je exécuter Docker dans une machine virtuelle?

J'ai essayé d'exécuter Docker sur une machine virtuelle.

Host : MacBook 
VM : Parallels Windows 7

Et une erreur survient:

enter image description here

C'est possible?

31
shkim

Vous utilisez Docker Machine dans votre machine virtuelle Windows, qui va en fait créer un Linux VM dans Windows VM sur votre Mac. Vous pouvez le faire , mais vous devez activer la virtualisation imbriquée - ce que je ne suis pas sûr de pouvoir faire dans Parallels 7.

Au lieu de cela, vous pouvez exécuter directement Docker Machine sur le Mac et tilisez Parallels pour créer la machine virtuelle Linux - ce qui signifie que Docker s'exécute sous Linux VM sur votre Mac). pas besoin de virtualisation imbriquée.

Ou utilisez de préférence Docker pour Mac si votre système d’exploitation le prend en charge, il s’agit du dernier produit et offre une meilleure intégration de l’hôte que Docker Machine.

18
Elton Stoneman

Si VM est un système Linux, vous pouvez le faire sans problème. Sous Linux, le menu fixe est essentiellement un chroot bien travaillé. Ainsi, le menu fixe Linux n’est pas de la virtualisation.

Dans le cas de Windows, ce n'est pas si facile. Windows Docker utilise Hyper-V en interne pour émuler les conteneurs. Ce qui signifie que vous ne pouvez exécuter que si vous pouvez utiliser la virtualisation imbriquée:

  1. Sur votre machine hôte, exécute une machine virtuelle Windows
  2. Dans votre machine virtuelle Windows, exécute un HyperV
  3. HyperV est géré par le menu fixe installé sur votre Windows virtuel.

J'ai essayé qemu/kvm, virtualbox et vmware player. Je les ai configurés profondément et fortement, je les ai piratés, j'ai tout fait pour le faire. Seul le dernier travaillé (VMWare).

Il y a des coûts de rapidité importants, mais cela peut être utile pour le développement sous Linux, puis les essais-tests sur les configurations Windows.

Vous aurez besoin de beaucoup de bélier. Au moins 16G. 32G est mieux. Une configuration relative utile serait:

  • 32 Go physique RAM pour l'hôte physique
  • 12GB virtuel RAM pour Windows VM s'exécutant sur celui-ci
  • 8 Go virtuel RAM à l'intérieur de la machine virtuelle Windows pour l'hôte HyperV Linux.

Parfois, ce sera un peu bogué, mais seul votre HyperV tombera en panne, votre Win virtuel ou votre ordinateur hôte ne le fera pas. C'est bien de tester un conteneur Docker sur une machine Windows, ce que vous avez développé sous Linux. Ne créez pas de serveurs critiques de cette façon. :-)

33
peterh