web-dev-qa-db-fra.com

Concentrer des conteneurs dans une machine virtuelle?

Je crois comprendre que les conteneurs sont beaucoup plus légers que les VMS, car ils ne virtualisent pas le matériel mais simplement isoler le logiciel qui s'exécute dans des logiciels exécutés dans d'autres conteneurs sur le système.

Ma situation est telle que je ne peux pas me permettre d'acheter des serveurs supplémentaires et que les serveurs que j'ai fabriqués sont tous des hyperviseurs. J'ai besoin de fournir au moins 6 "serveurs" pour accueillir des instances d'une application Web relativement petite (chaque instance est pour un client différent). Il serait inutile de prévoir un nouveau VM pour chacun de ces serveurs, donc je prévois de configurer 2 VMS et de faire l'une des opérations suivantes:

  1. Exécutez plusieurs instances de l'application sur chaque VM à l'aide des hôtes virtuels (Apache). Ou
  2. Configurez des conteneurs sur le VMS qui me permettrait d'isoler les environnements.

Compte tenu de cela, existe-t-il une surcharge non négligeable associée à des systèmes de conteneurs qui en feraient une mauvaise idée de les utiliser à l'intérieur d'une machine virtuelle, ou y a-t-il une autre raison Technique raison pour laquelle je ne voudrais pas utiliser de conteneurs ?

15
Chris L

Docker est très léger par rapport à un système VM et un VM _ doit fonctionner simplement des conteneurs à exécution précis. Chaque conteneur fonctionne essentiellement en tant que système isolé, il est donc très bon d'isolement d'une perspective de stabilité du système. Basé sur votre description, il ressemble à l'étui d'utilisation idéal pour Docker. Si vous expérimentez avec Docker, assurez-vous d'utiliser la version la plus récente possible, certains des plus âgés ont des vulnérabilités assez mauvaises. Certaines considérations de sécurité sont en cours d'exécution Docker.

SELINUX - SELINUX est conscient du conteneur et créera automatiquement une étiquette MCS nommée au hasard pour chaque conteneur. Cela aide à assurer l'isolement car les conteneurs LXC ne sont pas considérés comme véritablement "contenir" par eux-mêmes, bien que cela s'améliore.

Directive utilisateur - Dans chaque DockerFile, il est recommandé d'utiliser la meilleure pratique d'utiliser la directive utilisateur et d'exécuter l'utilisateur en tant que compte autre que root, la valeur par défaut. La capture ici est que l'utilisateur doit exister sur le système. Il peut également être frustrant des fichiers de chiping/chmodding et de répertoires pour ce nouvel utilisateur, mais cela aide à réduire vos risques. Je vous recommande généralement de créer un "conteneur" ou quelque chose du genre sur vos systèmes pour vous assurer qu'un utilisateur commun est disponible sur tous les systèmes qui ne se chevauchent pas avec aucune autre partie du système.

Sinon, la partie la plus difficile est la gestion des conteneurs et les mettre à jour lorsque cela est nécessaire.

13
theterribletrivium

y a-t-il une surcharge non négligeable associée à des systèmes de conteneurs qui en feraient une mauvaise idée de les utiliser à l'intérieur d'un virus VM

- Performances de conteneurs Docker dans VMware vSphere vous aider?

ou y a-t-il une autre raison technique pour laquelle je ne voudrais pas utiliser de conteneurs?

Je ne sais pas sur Docker en général parce que je n'ai pas encore travaillé avec ça. Je pense que le logiciel de gestion manque toujours de maturité par rapport au VM ... mais je suis un administrateur vSphere et donc probablement biaisé.

Considérant Docker sur VMS, Coreos est maintenant officiellement pris en charge sur VSphere 5.5 . Donc, au moins VMware pense que Docker/conteneurs sur VMS est correct.

3
Mario Lenz