¿Cómo permitir al usuario administrar aplicaciones web usando Docker?

¿Cómo permitir al usuario administrar aplicaciones web usando Docker?

Para el alojamiento web, mi empresa busca utilizar contenedores Docker para cada aplicación web con un proxy inverso como interfaz. Funciona, pero estamos buscando una manera de permitir que nuestros usuarios administren sus propias aplicaciones, los administradores controlarán los accesos públicos y privados a través del proxy inverso y el dns.

Pero no podemos permitirle al usuario la autorización para iniciar/detener instancias de Docker, ya que el usuario que puede enviar comandos a un demonio de Docker puede hacer lo que quiera (como se describeaquíyaquí).

Entonces, ¿cómo podemos permitir que el usuario controle el inicio/detención y la configuración de algunos contenedores acoplables específicos?

La única solución en la actualidad (encontradaaquí) es permitir que Docker detecte cambios en el registro para descargar y reiniciar actualizaciones, por ejemplo conTorre de vigilancia).

Otra alternativa esespere el soporte del espacio de nombres de usuariopara evitar que el usuario del contenedor raíz pueda acceder al usuario del host raíz, pero ¿será suficiente?

editar: Docker no es tan sólido en cuanto a seguridad, pero en nuestro caso:

  • Los usuarios están limitados a empleados internos autenticados.
  • Los usuarios no pueden acceder directamente al demonio acoplable (este es el punto de mi pregunta)
  • Es una mejor solución que Apache de una instancia con cien vhosts.
  • Necesitamos hacer frente a las demandas sobre marcos web alternativos/configuraciones exóticas (node.js, meteor, ruby) en lugar del LAMP clásico, y los contenedores son excelentes para que los desarrolladores transfieran su aplicación a la plataforma de alojamiento.
  • Este es un experimento que estamos realizando, esperamos que en un futuro no muy lejano soluciones comoproyecto atómicoy/o el soporte del espacio de nombres de usuario traerá mejores garantías.

Respuesta1

Es posible que pueda agregar a su interfaz de cliente una opción que le muestre el contenedor que posee y le permita reiniciar su contenedor a través deAPI remota de Docker

Pero esto sólo debería ser una opción si tienes una interfaz de usuario segura y una buena gestión de derechos de usuario.

Tenga en cuenta que la API remota de Docker cambiará en la próxima versión 1.9 a finales de octubre.Hoja de ruta 1.9

información relacionada