LINUX.ORG.RU
ФорумAdmin

Общая директория для контейнеров докера и пользователей

 


0

2

Сейчас делается следующее:

Создал volume:

docker volume create shara

При загрузке (systemd) соответствующая директория монтируется на директорию одного из пользователей, куда все имеют доступ:

mount --bind /home/testcase/common_data/ /var/lib/docker/volumes/shara/_data/

При запуске контейнеров (тоже systemd или вручную) эта директория подключается как /common_data:

docker run -v shara:/common_data image1

Вопросы:

1. Есть ли подводные камни в таком подключении?

2. Можно ли сделать это проще?

Дистрибутив — Ubuntu, если это имеет значение.

★★★
$ docker run -v /host/dir/common_data:/container/dir/common_data image1

Не, не оно?

1. Есть ли подводные камни в таком подключении?

Права становятся 777 на хосте.

Yustas ★★★★
()
Последнее исправление: Yustas (всего исправлений: 1)
Ответ на: комментарий от Yustas

По такой команде создало директорию /var/lib/docker/aufs/diff/{длинный хеш}/dir/common_data/ Без sudo читать её невозможно.

Права на директорию 777 root:root, права на создаваемые в ней файлы 644 от тех пользователя-группы, который их создал в докере. 777 и даже 664 на файлы меня бы устроило, но этого нет.

Пока я дошёл до

docker run  --mount=type=bind,source=...,destination=... --user `id host_username`
Таким образом все создаваемые файлы имеют тот же UID, что и host_username, и host_username может их модифицировать.

Было бы удобнее, если бы создаваемые файлы наследовали UID:GID общей директории или UID:GID можно было бы указать в параметрах --volume или --mount, но похоже, докер так не умеет.

olegd ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.