Подтвердить что ты не робот

Докер, монтирует тома как только для чтения

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

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

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

4b9b3361

Ответ 1

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

docker run -v volume-name:/path/in/container:ro my/image

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

2018 Править

Согласно документации по использованию томов, теперь есть другой способ монтирования томов с помощью переключателя --mount. Вот как использовать это только для чтения:

$ docker run --mount source=volume-name,destination=/path/in/container,readonly my/image

докер-Compose

Вот пример того, как указать контейнеры только для чтения в docker-compose:

version: "3"
services:
  redis:
    image: redis:alpine
    read_only: true

Ответ 2

докер-компоновать

Вот правильный способ указать том только для чтения в docker-compose:

version: "3"
services:
  my_service:
    image: my:image
    volumes:
      - type: volume
        source: volume-name
        target: /path/in/container
        read_only: true
volumes:
  volume-name:

https://docs.docker.com/compose/compose-file/#long-syntax-3