Файл Docker уже существует при монтировании с помощью gcsfuse - PullRequest
0 голосов
/ 03 июля 2018

Итак, я смонтировал GCS Bucket на своей виртуальной машине с помощью команды gcsfuse --implicit-dirs [bucket] [mount-point].
Я использую тот же [mount-point] с докером, чтобы сохранить мои данные. Однако, когда я запускаю свои контейнеры с docker-compose up, я получаю сообщение об ошибке mkdir file exists

Я получил его на работу после того, как размонтировал ведро и снова установил его с помощью gcsfuse --implicit-dirs -o allow_others [bucket] [mount-point]. Однако я прочитал, что использовать флаг -o allow_others небезопасно.

Как мне заставить это работать без использования этого флага?

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Я попытался сделать то же самое и столкнулся с кучей ошибок. Я написал учебное пособие, в котором объясняется, как монтировать ведро GCS на GCE из контейнера Docker:

0 голосов
/ 12 июля 2018

Согласно этой ссылке необходим флаг -o allow_others. Есть несколько примеров статей здесь и здесь .

Здесь , они также используют флаг -o allow_others. Это та же ошибка при использовании одной и той же точки монтирования, хотя они не используют сегменты GCS. Они воспроизвели вашу проблему. Вам нужно передать -o allow_other при монтировании. В противном случае mount может использоваться только вашим текущим пользователем. Docker-демон запускается от имени пользователя root, а не обычного пользователя, поэтому он не может получить доступ к файлам. Sudo не требуется при монтировании, если у вашего пользователя есть права на монтирование. Пожалуйста, смотрите это .

...