Это хуже чем это.Любой, кто может запустить любую команду Docker, может выполнить:
docker run -it -v /:/host -u root ubuntu sh
И тогда у них будет оболочка корневого уровня, которая имеет неограниченный доступ к файловой системе хоста.
Нет (легко) способ ограничить это дальше.Вы не можете безопасно сделать доступ к Docker доступным для ненадежных пользователей в общей системе.
Типичная настройка имеет сокет Docker, принадлежащий root, и выделенную группу «docker» и не доступна для всех.Если у вас есть ограниченное количество пользователей, которые уже имеют доступ к sudo (или вы не против, если они предоставят его себе), они могут sudo run docker
, или вы можете добавить их в группу «Докер», и другие пользователи выиграют ».уметь запускать команды Docker;они могут получить доступ к сервисам в уже запущенных контейнерах.(Если вы изменили настройку демона Docker так, чтобы он прослушивал TCP-сокет, вы предоставили root-доступ к хосту любому, кто сможет получить доступ к сокету.)
В конкретном случае Docker Machineон всегда прослушивает сокет TCP и, хотя он не доступен вне хоста, единственный способ ограничить доступ к нему - ограничить распространение его сертификатов TLS.Вероятно, я бы не использовал его в среде, отличной от системы разработки, где я не могу использовать «более родной» Docker.