У меня есть два пользователя Linux с именами: ubuntu и my_user Теперь я создаю простой образ Docker и запускаю контейнер Docker. В моем docker-compose.yml я монтирую некоторые файлы с локального компьютера в контейнер, которые были созданы пользователем ubuntu.
Теперь, если я вхожу в систему с помощью my_user и получаю доступ к контейнеру докера, созданному пользователем ubuntu с помощью команды docker exec, я могу получить доступ к любым файлам, которые присутствуют в контейнере.
Мое требование - ограничить доступ my_user для доступа к содержимому контейнера Docker, созданного пользователем ubuntu.
Не с основной функциональностью Moby / Docker Engine; многопользовательская поддержка и управление доступом на основе пользователей / ролей выходит за рамки, но платформы, такие как Docker Enterprise Edition, предоставляют эту функциональность
Привет, jonrsharpe, на самом деле я хочу, чтобы мои данные контейнера были защищены так, чтобы только один пользователь Linux мог получить доступ к этому содержимому контейнера, ни один другой пользователь Linux не должен иметь возможность вносить изменения в данные контейнера.





Вы можете добавить «ro», что означает чтение только после столбца данных.
ХОЗЯИН: КОНТЕЙНЕР: ro
Или вы можете добавить свойства ReadOnly в свой docker-compose.yml
Вот пример того, как указать контейнеры только для чтения в docker-compose:

В настоящее время этого добиться невозможно. Если ваш пользователь может выполнять команды Docker, это фактически означает, что у пользователя есть привилегии root, поэтому невозможно предотвратить доступ этого пользователя к каким-либо файлам.
Можем ли мы использовать для этого какие-либо сторонние утилиты?
@surabhi, есть только возможность ограничить доступ к файлу добавлением полей в docker-compose file.
read_only: flag to set the volume as read-only
nocopy: flag to disable copying of data from a container when a volume is created
Вы можете найти дополнительную информацию здесь
Вы можете установить и запустить sshd в этом контейнере, сопоставить порт 22 с доступным портом хоста и управлять доступом пользователей с помощью ключей ssh. Это не позволит пользователю управлять вещами с помощью команд докеров, но предоставит этому пользователю доступ к этому контейнеру.
Чего вы на самом деле пытаетесь здесь достичь?