Actualizar: 2019-03-11
En primer lugar, gracias por quienes han votado esta respuesta a lo largo de los años.
Tenga en cuenta que esta pregunta se hizo en agosto de 2013, cuando Docker todavía era una tecnología muy nueva. Desde entonces: Kubernetes se lanzó en junio de 2014, el enjambre Docker se integró en el motor Docker en febrero de 2015, Amazon lanzó su solución de contenedor, ECS, en abril de 2015 y Google lanzó GKE en agosto de 2015. Es justo decir que el panorama de contenedores de producción tiene cambiado sustancialmente.
La respuesta corta es que tendrías que escribir tu propia lógica para hacer esto.
Esperaría que este tipo de característica emerja de los siguientes proyectos, construidos sobre docker y diseñados para soportar aplicaciones en producción:
Actualización 1
Otro proyecto relacionado que descubrí recientemente:
Actualización 2
La última versión de Openstack contiene soporte para administrar contenedores Docker:
Actualización 3
Sistema para gestionar instancias de Docker
Y una presentación sobre cómo usar herramientas como Packer , Docker y Serf para entregar un patrón de infraestructura de servidor inmutable
Actualización 4
Un artículo ordenado sobre cómo conectar juntos los contenedores acoplables con siervo :
Actualización 5
Ejecute Docker en Mesos usando el marco Marathon
Tutorial para desarrolladores de Mesosphere Docker
Actualización 6
Ejecute Docker en Tsuru, ya que admite docker-cluster y despliegue de planificador segregado
Actualización 7
Orquestación de entornos basados en Docker
maestro-ng
Actualización 8
decking.io
Actualización 9
Google kubernetes
Actualización 10
Redhat ha reestructurado su PAAS OpenShift para integrar Docker
Actualización 11
Una biblioteca Docker NodeJS que ajusta la línea de comandos de Docker y la administra desde un archivo json.
Actualización 12
El nuevo servicio contenedor de Amazon permite escalar en el clúster.
Actualización 13
Estrictamente hablando, Flocker no "escala" las aplicaciones, pero está diseñado para cumplir una función relacionada de hacer que los contenedores con estado (¿ejecutan servicios de bases de datos?) Sean portátiles en varios hosts de acopladores:
https://clusterhq.com/
Actualización 14
Un proyecto para crear plantillas portátiles que describen aplicaciones Docker:
http://panamax.io/
Actualización 15
El proyecto Docker ahora aborda la orquestación de forma nativa (Ver anuncio )
Actualización 16
Spotify Helios
Ver también:
Actualización 17
El proyecto Openstack ahora tiene un nuevo proyecto "contenedor como servicio" llamado Magnum:
Muestra mucha promesa, permite la fácil configuración de los marcos de orquestación de Docker como Kubernetes y Docker swarm.
Actualización 18
Rancher es un proyecto que está madurando rápidamente
http://rancher.com/
Interfaz de usuario agradable y fuerte enfoque en las infraestructuras híbridas de Docker
Actualización 19
El proyecto Lattice es una rama de Cloud Foundry para administrar clústeres de contenedores.
Actualización 20
Docker compró recientemente Tutum:
https://www.docker.com/tutum
Actualización 21
Administrador de paquetes para aplicaciones implementadas en Kubernetes .
http://helm.sh/
Actualización 22
Vamp es una plataforma de código abierto y autohospedada para administrar arquitecturas orientadas a (micro) servicios que dependen de la tecnología de contenedores.
http://vamp.io/
Actualización 23
Un programador distribuido, de alta disponibilidad y compatible con el centro de datos
De los muchachos que nos dieron Vagrant y otras herramientas poderosas.
Actualización 24
Solución de alojamiento de contenedores para AWS, de código abierto y basada en Kubernetes
https://supergiant.io/
Actualización 25
Contenedor basado en Apache Mesos alojado ubicado en Alemania
https://sloppy.io/features/#features
Y Docker Inc. también proporciona un servicio de alojamiento de contenedores llamado Docker Cloud
https://cloud.docker.com/
Actualización 26
Jelastic es un servicio PAAS alojado que escala los contenedores automáticamente.
mesosphere/mesos-docker
proyecto ha quedado obsoleto y reemplazado pormesosphere/deimos
: github.com/mesosphere/deimosDeis automatiza el escalado de contenedores Docker (entre otras cosas).
Deis (pronunciado DAY-iss) es un PaaS de código abierto que facilita la implementación y administración de aplicaciones en sus propios servidores. Deis se basa en Docker y CoreOS para proporcionar un PaaS ligero con un flujo de trabajo inspirado en Heroku.
Aquí está el flujo de trabajo del desarrollador:
Deis implementa automáticamente sus contenedores Docker en un clúster CoreOS y configura los enrutadores Nginx para enrutar las solicitudes a contenedores Docker en buen estado. Si un host muere, los contenedores se reinician automáticamente en otro host en segundos. Simplemente vaya a la URL del proxy o use
deis open
para acceder a su aplicación.Algunos otros comandos útiles:
Para ver esto en acción, vea el video del terminal en http://deis.io/overview/ . También puede aprender sobre los conceptos de Deis o saltar directamente a la implementación de su propio PaaS privado .
fuente
Puedes probar Tsuru. Tsuru es un PaaS de código abierto inspirado en Heroku, y ya está con algunos productos en producción en Globo.com (brazo de Internet de la mayor compañía de televisión de difusión en Brasil)
Gestiona todo el flujo de una aplicación, desde la creación, despliegue, enrutamiento de contenedores (con hipache) con muchas características agradables como clúster docker, escalado de unidades, despliegue segregado, etc.
Eche un vistazo a nuestra documentación a continuación: http://docs.tsuru.io/
Aquí nuestra publicación que cubre nuestro medio ambiente: http://blog.tsuru.io/2014/04/04/running-tsuru-in-production-scaling-and-segregating-docker-containers/
fuente
Eche un vistazo a Rancher.com : puede administrar múltiples hosts Docker y mucho más.
fuente
Un enfoque sensato para escalar Docker podría ser:
Otro proyecto de fuente abierta de Docker de Yandex:
fuente
Openshift chicos también crearon un proyecto. Puede encontrar más información aquí , pruebe el contenedor de prueba e información detallada aquí . El único problema es que la solución está centrada en Redhat por ahora :)
fuente
Si bien somos grandes admiradores de Deis (deis.io) y lo estamos implementando activamente, hay otras soluciones de implementación de estilo Heroku como PaaS, que incluyen:
Longshoreman de la gente de Wayfinder:
https://github.com/longshoreman/longshoreman
Decker de la gente de CloudCredo, usando CloudFoundry:
http://www.cloudcredo.com/decker-docker-cloud-foundry/
En cuanto a la orquestación directa, el proyecto Centurion de código abierto de NewRelic parece bastante prometedor:
https://github.com/newrelic/centurion
fuente
Echa un vistazo también a etcd y Consul .
fuente
Panamax: Docker Management para humanos. panamax.io
Fig: entornos de desarrollo rápidos y aislados con Docker. fig.sh
fuente
Una opción que no se menciona en otras publicaciones es Helios. Está construido por spotify y no intenta hacer demasiado.
https://github.com/spotify/helios
fuente