Eu tenho a seguinte configuração de contêiner.
Em um servidor bare metal, dois Daemons Docker estão instalados e em execução.
- Daemon Principal Do Docker Executa meus contêineres de aplicativos expondo 80/443 ao mundo exterior.
- Plugin Docker Daemon Executa alguns contêineres fornecidos pelo cliente que se comunicam com meu aplicativo via 80/443.
Eu gostaria de dar ao cliente acesso à API (2376) do Plugin Docker Daemon para que o cliente possa implantar / iniciar / parar seus próprios contêineres. O cliente só terá acesso à API e não ao Host (SSH).
O problema que enfrento atualmente é, e se os clientes executarem um contêiner que faça algo inseguro como docker run -v /:/host/root Ubuntu rm -rf /host/root
.
Minha pergunta é o que posso fazer para evitar o Plugin Docker Daemon da raiz de montagem /
ou qualquer outro diretório fora /home/user/
,
- É uma opção para iniciar o Daemon Docker em
/home/user/
? - Posso usar alguns LSM (Linux security Modules SELinux/Apparmor) magic para evitar que o daemon docker monte alguns ou todos os caminhos do host, exceto users home ou var/docker/libs?
- Poder
--userns-remap
ajude-me a alcançar meu objetivo? - Existem outras opções disponíveis, exceto VMs?
O servidor pertence inteiramente a um único cliente. Portanto, a segurança ou vazamento de dados não é minha principal preocupação. O que eu realmente quero evitar é que alguém em Plugin Daemon está fazendo algo estúpido, que influencia meus contêineres que funcionam em Daemon Principal Do Docker. Eu gostaria de manter o Lean e manter o fluxo de trabalho apenas do docker e não vou configurar um fluxo de trabalho extra para a criação de VM.