Я работаю с Docker, и я хочу смонтировать динамическую папку, которая сильно меняется (чтобы мне не пришлось создавать образ Docker для каждого выполнения, что было бы слишком дорого), но я хочу, чтобы эта папка была доступна только для чтения . Смена владельца папки на другого работает. Однако chown
требуется root
доступ, который я бы предпочел не предоставлять приложению.
Когда я использую -v
флаг для монтирования, он дает то имя пользователя, которое я даю, я создал пользователя без полномочий root внутри образа докера, однако все файлы в томе с владельцем в качестве пользователя, запустившего докер, меняются на пользователя I give из командной строки, поэтому я не могу создавать файлы и папки только для чтения. Как я могу предотвратить это?
Я также добавил mustafa ALL=(docker) NOPASSWD: /usr/bin/docker
, чтобы я мог перейти на другого пользователя через терминал, но все же файлы имеют разрешения для моего пользователя.
Ответы:
Вы можете указать, что том должен быть доступен только для чтения, добавив
:ro
к-v
переключателю:Обратите внимание, что в этом случае папка будет доступна только для чтения в контейнере и для чтения-записи на хосте.
2018 Править
Согласно документации по использованию томов , теперь существует другой способ монтировать тома с помощью
--mount
переключателя. Вот как это использовать в режиме только для чтения:докер-сочинять
Вот пример того, как указать контейнеры только для чтения в
docker-compose
:источник
docker cp
команду для отключенного контейнера.redis:alpine:ro
докер-сочинять
Вот правильный способ указать том только для чтения в
docker-compose
:https://docs.docker.com/compose/compose-file/#long-syntax-3
источник
version: "3.2"
- Спасибо :)- './my-file.txt:/container-readonly-file.txt:ro'
подvolumes
- обратите внимание:ro
на в конце.