1

Я пытаюсь запустить образ докера для монтирования hubic (онлайн-хранилище) и выставить его на хост

Пока работает то, что контейнер правильно устанавливает точку предохранителя (в /mnt/hubic)

При запуске docker я пытаюсь запустить с томом, отображенным как /path/on/host:/mnt/hubic похоже, это работает (т.е. docker создает каталог, если он не существует), но содержимое никогда не появляется. Если я вхожу в контейнер, я вижу файлы из онлайн-хранилища, но в папке хоста ничего нет

Есть ли опция, которую я пропускаю, чтобы позволить docker сделать это?

Команда, которую я использую для запуска контейнера

docker run -v ~/.hubicfuse:/root/.hubicfuse -v /tmp/mounted:/mnt/hubic --device /dev/fuse --cap-add SYS_ADMIN --security-opt apparmor:unconfined -it {container_name}

1 ответ1

2

Решение приходит с поста s3, установленного внутри контейнера. как выставить его на хост?

В этом посте описано решение с использованием glusterFS , требующее дополнительных разрешений для контейнера. Команда docker использовала:

docker run --cap-add SYS_ADMIN --device fuse -v host_mount_dir:container_mount_dir:shared IMAGE COMMAND

В случае ошибки типа «Path /foo монтируется в /foo, но это не общее монтирование ...», причина в том, что демон docker работает в другом пространстве имен монтирования, чем systemd. Это решение для его запуска в том же пространстве имен:

mkdir -p /etc/systemd/system/docker.service.d/
cat <<EOF > /etc/systemd/system/docker.service.d/clear_mount_propagation_flags.conf
[Service]
MountFlags=shared
EOF

И перезапустите демон докера.

Замечание заключается в том, что монтирование видно на хосте, если оно монтируется в каталог, связанный с -v .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .