Avertissement: j'ai écrit Vagabond! Mais parce que j'ai écrit, Vagabond, je passe la plupart de mon temps dans la DevOps monde qui comprend des logiciels comme Docker. Je travaille avec beaucoup d'entreprises à l'aide de l'Errance et de l'utilisation de nombreux Docker, et je vois comment les deux entrent en interaction.
Avant que je parle trop, une réponse directe: dans votre scénario spécifique (vous travailler seul, sur Linux, en utilisant le Panneau de la production), vous pouvez coller avec Docker seul et simplifier les choses. Dans de nombreux autres scénarios (je discuter de la suite), il n'est pas si facile.
Il n'est pas correct de comparer directement les Vagabonds de Docker. Dans certains scénarios, ils ne se chevauchent, et dans la grande majorité, ils n'en ont pas. En fait, le plus apte comparaison serait Vagrant rapport à quelque chose comme Boot2Docker (minimal OS qui peuvent s'exécuter Docker). Vagrant est un niveau au-dessus de Docker en termes d'abstractions, de sorte qu'il n'est pas une comparaison équitable, dans la plupart des cas.
Vagrant lance choses pour faire fonctionner des applications/services pour des fins de développement. Cela peut être sur VirtualBox, VMware. Il peut être à distance comme AWS, OpenStack. À l'intérieur de ceux-ci, si vous utilisez des récipients, l'Errance ne se soucient pas, et l'embrasse: il permet d'installer automatiquement, tirer vers le bas, créer et exécuter des conteneurs Docker, par exemple. Avec Vagrant 1.6, Vagabond a docker environnements de développement, et prend en charge l'utilisation Docker avec le même flux de travail en tant que Vagabond à travers Linux, Mac et Windows. Vagabond n'essaie pas de remplacer le Panneau ici, il embrasse Docker pratiques.
Menu fixe spécifiquement pistes de conteneurs Docker. Si vous êtes à la comparer directement à l'Errance: il s'agit précisément d'un plus spécifiques (pouvez uniquement exécuter des conteneurs Docker), moins flexible (nécessite Linux ou Linux hôte quelque part) solution. Bien sûr, si vous parlez de la production ou de la CI, il n'y a pas de comparaison à Vagrant! Vagabond n'habite pas dans ces environnements, et ainsi de Débardeur doit être utilisé.
Si votre organisation ne s'exécute que des conteneurs Docker pour tous leurs projets et n'a que les développeurs sous Linux, alors ok, Docker peut certainement travailler pour vous!
Sinon, je ne vois pas l'avantage de la tentative d'utilisation de Docker seul, car vous perdez beaucoup de ce Vagabond a à offrir, qui ont un véritable business et de la productivité des avantages:
Vagrant pouvez lancer VirtualBox, VMware, AWS, OpenStack, etc. machines. Il n'a pas d'importance ce que vous avez besoin, Vagrant pouvez le lancer. Si vous utilisez le Panneau, Vagrant pouvez installer Docker sur l'un de ces, vous pouvez les utiliser à cette fin.
Vagrant est un flux de travail unique pour tous vos projets. Ou de mettre une autre manière, c'est juste une chose que les gens doivent apprendre à gérer un projet que ce soit dans un conteneur Docker ou pas. Si, par exemple, dans l'avenir, un concurrent se pose à rivaliser directement avec Docker, Vagrant sera en mesure d'exécuter aussi.
Vagrant fonctionne sur Windows (XP), Mac (10.5), et Linux (noyau 2.6). Dans les trois cas, le flux de travail est le même. Si vous utilisez le Panneau, Vagrant pouvez lancer une machine (machine virtuelle ou à distance) qui peuvent s'exécuter Docker sur chacun de ces trois systèmes.
Vagrant sait comment configurer certains avancé ou non les choses triviales comme le réseautage et la synchronisation des dossiers. Par exemple: Vagrant sait comment joindre une adresse IP statique à une machine ou un forwarder les ports, et la configuration est la même quel que soit le système que vous utilisez (VirtualBox, VMware, etc.) Pour les dossiers synchronisé, Vagabond propose plusieurs mécanismes pour obtenir vos fichiers locaux sur la machine distante (VirtualBox dossiers partagés, NFS, rsync, Samba [plugin], etc.). Si vous utilisez le Panneau, même Docker avec une VM sans Vagabond, vous devez manuellement le faire, ou ils auraient à réinventer l'Errance dans ce cas.
Vagrant 1.6 a soutien de première classe pour docker environnements de développement. Ce ne sera pas de lancer une machine virtuelle sous Linux, et va automatiquement lancer une machine virtuelle sur Mac et Windows. Le résultat final est que le travail avec Docker est uniforme sur toutes les plateformes, tandis que Vagrant toujours gère les détails fastidieux de choses telles que la mise en réseau, les dossiers synchronisé, etc.
Afin de répondre à certaines contre-arguments que j'ai entendu en faveur de l'utilisation de Docker au lieu de l'Errance:
"Il est de moins en moins de pièces en mouvement" - Oui, il peut être, si vous utilisez le Panneau exclusivement pour chaque projet. Même alors, c'est sacrifier la flexibilité pour le Panneau de verrouillage. Si vous décidez de ne pas utiliser Docker pour tout projet, le passé, le présent ou l'avenir, alors vous aurez plus de pièces mobiles. Si vous aviez utilisé, Vagabond, vous avez qu'une seule partie mobile qui prend en charge le reste.
"C'est plus rapide!" - Une fois que vous avez l'hôte qui peut fonctionner Linux containers, Docker est certainement plus rapide à l'exécution d'un conteneur que n'importe quelle machine virtuelle devrait se lancer. Mais le lancement d'une machine virtuelle (ou à distance de la machine) est un coût unique. Au cours de la journée, la plupart des Vagabonds utilisateurs n'ont jamais fait de détruire leur VM. C'est une étrange optimisation pour les environnements de développement. Dans la production, où Docker brille vraiment, je comprends la nécessité de rapidement spin up/down conteneurs.
J'espère maintenant que son évident de voir qu'il est très difficile, et je crois ne pas les corriger, de les comparer menu fixe à l'Errance. Pour les environnements de dev, Vagrant est plus abstrait, plus général. Docker (et les différentes manières de le faire se comporter comme Vagrant) est un cas d'utilisation spécifiques de l'Errance, en ignorant tout le reste, Vagabond a à offrir.
En conclusion: en très des cas d'utilisation spécifiques, Docker est certainement un remplacement possible pour Vagrant. Dans la plupart des cas, il n'est pas. Vagrant pour ne pas nuire à votre utilisation de Docker; en fait, il fait ce qu'il peut pour rendre cette expérience plus lisse. Si vous trouvez que ce n'est pas vrai, je suis heureux de prendre les suggestions pour améliorer les choses, puisque l'objectif de Vagrant est de travailler aussi bien avec n'importe quel système.
Espérons que cela efface les choses!