Para hospedagem na web, minha empresa pretende usar contêineres docker para cada aplicativo da web com um proxy reverso como front-end. Funciona, mas estamos procurando uma maneira de permitir que nossos usuários gerenciem seus próprios aplicativos, os administradores controlarão os acessos públicos e privados através do proxy reverso e do DNS.
Mas não podemos permitir que o usuário tenha autorização para iniciar/parar instâncias do docker, pois o usuário que pode enviar comandos para um daemon do docker pode fazer o que quiser (conforme descritoaquieaqui).
Então, como podemos permitir que o usuário inicie/pare e configure alguns contêineres docker específicos?
A única solução neste momento (encontradaaqui) é permitir que o docker detecte alterações no registro para baixar e reiniciar atualizações, por exemplo, comTorre de vigia).
Outra alternativa éaguarde o suporte do namespace do usuáriopara evitar que o usuário do contêiner raiz possa acessar o usuário do host raiz, mas isso será suficiente?
editar: docker não é tão forte em termos de segurança, mas no nosso caso:
- Os usuários estão limitados a funcionários internos autenticados
- Os usuários não podem acessar diretamente o daemon docker (este é o ponto da minha pergunta)
- É uma solução melhor que o apache de uma instância com cem vhosts
- Precisamos lidar com demandas sobre alternativas de framework web/configuração exótica (node.js, meteor, ruby) em vez do clássico LAMP, e containers são ótimos para desenvolvedores transferirem suas aplicações para a plataforma de hospedagem.
- Esta é uma experiência que estamos conduzindo, esperamos que em um futuro não tão distante soluções comoprojeto atômicoe/ou o suporte do namespace do usuário trará melhores garantias.
Responder1
Você poderia adicionar à interface do cliente uma opção que mostra o contêiner que ele possui e permite que ele reinicie seu contêiner viaAPI remota do Docker
Mas isso só deve ser uma opção se você tiver uma interface de usuário segura e um bom gerenciamento de direitos de usuário.
Esteja ciente de que a API remota do Docker mudará na próxima versão 1.9 no final de outubro.Roteiro 1.9