Alors j'ai récemment découvert cet outil génial, et il dit
Docker est un projet à source ouverte permettant de créer facilement des conteneurs légers, portables et autonomes à partir de toute application. Le même conteneur qu'un développeur construit et teste sur un ordinateur portable peut être utilisé à grande échelle, en production, sur des ordinateurs virtuels, des clusters nus, des clusters OpenStack, des clouds publics, etc.
Disons que j'ai une image de menu fixe qui exécute Nginx et qu'un site Web se connecte à une base de données externe. Comment puis-je redimensionner le conteneur en production?
Tout d’abord, merci à ceux qui ont voté pour cette réponse au fil des ans.
Veuillez noter que cette question a été posée en août 2013, alors que Docker était encore une technologie très nouvelle. Depuis lors: Kubernetes a été lancé en juin 2014, l'essaim Docker a été intégré Dans le moteur Docker en février 2015, Amazon a lancé sa solution de conteneur , ECS, en avril 2015 et Google a lancé GKE. en août 2015. Il est juste de dire que le paysage des conteneurs de production a considérablement changé.
La réponse courte est que vous auriez à écrire votre propre logique pour faire cela.
Je m'attendrais à ce que ce type de fonctionnalité découle des projets suivants, construits sur le docker et conçus pour prendre en charge des applications en production:
Un autre projet connexe que j'ai découvert récemment:
La dernière version Openstack prend en charge la gestion des conteneurs Docker:
Système de gestion des instances Docker
Et une présentation sur la façon d'utiliser des outils tels que Packer , Docker et Serf fournir un modèle d'infrastructure de serveur immuable
Un article soigné sur la manière de câbler ensemble des conteneurs de menu fixe en utilisant serf :
Exécuter Docker sur Mesos en utilisant le cadre Marathon
Didacticiel du développeur Docker Mesosphere
Exécuter Docker sur Tsuru car il prend en charge docker-cluster et déploiement du planificateur séparé
Orchestration des environnements basés sur Docker
Google kubernetes
Redhat a restructuré son PAAS en open-shift pour intégrer Docker
Une bibliothèque Docker NodeJS encapsulant la ligne de commande Docker et la gérant à partir d’un fichier json.
Le nouveau service de conteneur d'Amazon permet la mise à l'échelle dans le cluster.
À proprement parler , Flocker ne "redimensionne" pas les applications, mais il est conçu pour remplir une fonction connexe consistant à rendre les conteneurs avec état (services de bases de données?) Portables sur plusieurs hôtes docker:
Un projet pour créer des modèles portables décrivant les applications Docker:
Le projet Docker s’adresse maintenant à l’orchestration de manière native (voir l’annonce )
Voir également:
Le projet Openstack a maintenant un nouveau projet "conteneur en tant que service" appelé Magnum:
Très prometteur, il permet de configurer facilement les infrastructures d’orchestration Docker telles que Kubernetes et Docker swarm.
Rancher est un projet qui mûrit rapidement
Belle interface utilisateur et forte concentration sur les infrastructures hybrides de Docker
Le projet Lattice est une émanation de Cloud Foundry pour la gestion des clusters de conteneurs.
Docker a récemment acheté Tutum:
Gestionnaire de packages pour les applications déployées sur Kubernetes .
Vamp est une plateforme open source et auto-hébergée pour la gestion d'architectures (micro) orientées services qui reposent sur la technologie de conteneur.
Un planificateur distribué, hautement disponible et axé sur le datacenter
Parmi les gars qui nous ont donné Vagrant et d'autres outils puissants.
Solution d'hébergement de conteneur pour AWS, open source et basée sur Kubernetes
Conteneur basé sur Apache Mesos hébergé en Allemagne
https://sloppy.io/features/#features
Et Docker Inc. fournit également un service d'hébergement de conteneurs appelé cloud Docker.
Jelastic est un service PAAS hébergé qui met à l'échelle les conteneurs automatiquement.
Deis automatise la mise à l'échelle des conteneurs Docker (entre autres).
Deis (prononcé DAY-iss) est un PaaS open source qui facilite le déploiement et la gestion des applications sur vos propres serveurs. Deis s'appuie sur Docker et CoreOS pour fournir un PaaS léger avec un flux de travail inspiré de Heroku.
Voici le flux de travail du développeur:
deis create myapp # create a new deis app called "myapp"
git Push deis master # built with a buildpack or dockerfile
deis scale web=16 worker=4 # scale up docker containers
Deis déploie automatiquement vos conteneurs Docker sur un cluster CoreOS et configure les routeurs Nginx pour acheminer les demandes vers des conteneurs Docker sains. Si un hôte meurt, les conteneurs sont automatiquement redémarrés sur un autre hôte en quelques secondes. Il vous suffit de naviguer vers l'URL du proxy ou d'utiliser deis open
pour lancer votre application.
Quelques autres commandes utiles:
deis config:set DATABASE_URL= # attach to a database w/ an envvar
deis run make test # run ephemeral containers for one-off tasks
deis logs # get aggregated logs for troubleshooting
deis rollback v23 # rollback to a prior release
Pour voir cela en action, regardez la vidéo du terminal à l’adresse http://deis.io/overview/ . Vous pouvez également en savoir plus sur les concepts de Deis ou passer directement à déployer votre propre PaaS privé .
Vous pouvez essayer Tsuru. Tsuru est un PaaS open source inspiré de Heroku, et certains de ses produits sont déjà en production sur Globo.com (branche Internet de la plus grande société de télévision de télévision au Brésil).
Il gère l'intégralité du flux d'une application, depuis la création du conteneur, le déploiement, le routage (avec hipache) avec de nombreuses fonctionnalités Nice comme le docker cluster, la mise à l'échelle des unités, le déploiement séparé, etc.
Jetez un oeil dans notre documentation ci-dessous: http://docs.tsuru.io/
Voici notre article sur notre environnement: http://blog.tsuru.io/2014/04/04/running-tsuru-in-production-scaling-and-segregating-docker-containers/
Regardez Rancher.com - il peut gérer plusieurs hôtes Docker et bien plus encore.
Une approche judicieuse de la mise à l'échelle de Docker pourrait être:
Un autre projet open source de docker de Yandex:
Les gars Openshift ont également créé un projet. Vous pouvez trouver plus d'informations ici , essayez conteneur de test et informations détaillées ici . Le seul problème est que la solution est centrée sur Redhat pour le moment :)
Alors que nous sommes de grands fans de Deis (deis.io) et que nous y déployons activement, il existe d'autres solutions de déploiement de style Heroku comme PaaS, notamment:
Les bûcherons des gens de Wayfinder:
https://github.com/longshoreman/longshoreman
Decker des gens de CloudCredo, utilisant CloudFoundry:
http://www.cloudcredo.com/decker-docker-cloud-foundry/
En ce qui concerne l’orchestration directe, le projet Open Source Centurion de NewRelic semble très prometteur:
Panamax: Gestion des dockers pour les humains. panamax.io
Figue: Environnements de développement rapides et isolés avec Docker. fig.sh
Une option non mentionnée dans d'autres publications est Helios. Il est construit par Spotify et n'essaie pas de faire trop.