Предполагая, что я запускаю несколько контейнеров докеров на локальном сервере. Когда я предоставляю третьим лицам доступ по ssh к моему серверу, любая третья сторона будет иметь контроль над диспетчером докеров. Как я могу убедиться, что каждый удаленный пользователь имеет доступ только к определенным контейнерам?
В Docker нет встроенной этой функции. Вам нужно будет написать собственный сценарий оболочки для управления доступом.
Кроме того, вы, вероятно, захотите серьезно подумать о том, подходит ли довольно слабая изоляция докеров для ваших целей с точки зрения безопасности. С самого начала Docker не делал упор на безопасность, а скорее о переносимости приложений и простоте развертывания. Они работают над аспектом безопасности, но еще многое предстоит сделать, прежде чем мне будет удобно давать любой сторонний доступ к контейнеру, запущенному на одном из моих хостов.
EEAA правильно, встроенного способа сделать это нет. Лучший способ сделать это прямо сейчас - так же, как и для любой другой системы. Например, вы можете запустить демон SSH в своем докер-контейнере, используя что-то вроде supervisord для запуска нескольких приложений. Контейнер докера предназначен для запуска одного приложения, такие инструменты, как supervisord, обходят это, запуская для вас несколько процессов и продолжая их запускать.
На этом этапе вам просто нужно убедиться, что их открытый ключ находится на каждом контейнере докеров, к которому у них должен быть доступ. Однако помните, что вам нужно включить SELinux и, желательно, USER
Директива настроена в докере для запуска контейнера от имени ограниченного пользователя.