2013-10-03 2 views
57

Я работаю с Docker, и я хочу установить диамантическую папку, которая сильно меняется (так что мне не нужно делать докеры для каждого исполнения, что было бы слишком дорого), но я хотите, чтобы эта папка была только для чтения. Однако изменение владельцев папок для кого-то другого работает, но chown требует root доступа, который я бы не хотел раскрывать приложению.Docker, монтирует тома как readonly

Когда я использую флаг -v для монтирования, он дает то, что я даю мне, я создал пользователя без root в изображении докера, однако все файлы в томе с владельцем в качестве пользователя, который запускает докер, пользователь, которого я даю из командной строки, поэтому я не могу делать только файлы и папки только для чтения. Как я могу это предотвратить?

Я также добавил mustafa ALL=(docker) NOPASSWD: /usr/bin/docker, поэтому я мог бы перейти на другого пользователя через терминал, но все же у файлов есть разрешения для моего пользователя.

+0

Просто подумал, что оставлю здесь комментарий, говорящий о том, что позволяет пользователю запускать контейнеры докеров так же, как дать ему полный доступ к корню. Это также описано в разделе безопасности документации докеров. – Blackclaws

ответ

97

Вы можете указать, что объем должен быть только для чтения путем добавления :ro к выключателю -v:

docker run -v /path/on/host:/path/on/container:ro my/image 

Обратите внимание, что папка затем только для чтения в контейнере и для чтения и записи на хосте.

+1

позволяет писать, но не записывать их обратно на хост? это было бы фантастически –

+4

Похоже, вы хотите вообще указать объем. – Alp

+0

Сортировка ... Мне просто не нужно создавать изображение, чтобы использовать Dockerfile COPY или использовать отдельную команду 'docker cp' в закрытом контейнере. –

Смежные вопросы