2016-07-31 39 views
1

Ich habe kürzlich mit Docker-Containern gespielt. Ich habe einen Docker-Host eingerichtet, auf dem Benutzer Teil der Docker-Gruppe sind, damit sie die Container für sich selbst starten können. Aber in diesem Szenario Behälter durch den Benutzer A gestartet ist mit dem Benutzer B. Also ich einen Weg suchte Benutzer Container von anderen Benutzern zu isolieren und versuchte -u Flags an den docker run Befehl hinzufügen, aber bekam folgende FehlerSo isolieren Sie Andock-Container von anderen Benutzern

FATA[0001] Error response from daemon: Cannot start container XXXXX: [8] System error: Unable to find user abc 

der gleiche Befehl funktioniert mit -u flag

Benutzer abc existieren auf dem Host, aber nicht sicher, was ich hier vermisse.

Wer weiß, was hier nicht stimmt?

Ich bin auf Ubuntu 14.04 mit Docker 1.6.2

Antwort

1

Benutzer mit Zugriffsrechten zum Ausführen von Docker-Containern auf einem Host haben effektiv vollständigen Root-Zugriff auf diesem Host-Server. Sie können einfach docker run -it --rm -v /:/target debian ausführen und eine Root-Shell mit Ihrem Host-Dateisystem in dieser Shell zugeordnet haben.

Daher können Sie nicht von anderen Benutzern mit direktem Zugriff auf die Docker-Engine isolieren. Um die gewünschte Isolierung zu erhalten, müssen Sie ein Tool oben auf der Docker-Engine verwenden, das RBAC bereitstellt, und eine sorgfältige Konfiguration vornehmen, um einzuschränken, was jeder Benutzer senden kann. Docker hat seine eigene (universelle Kontrollebene) und andere Hersteller haben ähnliche Produkte erstellt. Oder, wie Mark vorschlägt, geben Sie jedem Benutzer eine eigene VM, die isolierte Docker-Instanzen ausführt.

1

Docker ist kein Multi-tenanted Service, der erklärt, warum Container für Benutzer sichtbar auf dem gleichen Server sind.

Theoretisch könnten Sie für jeden Benutzer einen Docker-Daemon starten, aber es ist möglicherweise einfacher, jedem Benutzer eine virtuelle Maschine zu geben, in der er seine Container ausführen kann.