docker (form snap) mount: bind возвращает ошибку 'bind source path does not exist'

Уважаемые господа,

У меня следующая ситуация:

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

    docker run \
    --name=emptypicture-cont -it \
    --expose=8010 -p 8010:8010 
    --mount type=bind,source=/Data/emptypicture/Logs,target=/App/Logs  \
    -d emptypicture-image

Мне возвращается ошибка

    docker: Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /Data/emptypicture/Logs.

При этом у меня есть директория /Data/emptypicture/Logs

я прошу помощи, потому что я сегодня реально сломал голову. я несколько часов пытался запустить насчастный контейнер, и я не могу понять, какую ошибку я делаю.

Я десять раз удалил и создал как образ, так и контейнер, и саму диреткторию. Дал права 777 на всю /Data

я прочитал кучу дискуссий в интернете на тему "bind vs named volumes"

Но я не могу понять, что я делаю не так.

Не дадите ли вы новое направление моему поиску ошибок? Что еще можно попробовать? На какие типичные грабли я мог наступить?

linux: 18.04.4 LTS

docker: 20.10.8, поставлен из снапа

На другом хосте всё... просто работает!

Разница, котрую я заметил - такая: на хосте, где всё работает - докер поставлен не из снапа, а "нативно". И я там права группе еще не дал, так что команду docker всегда приходится запускать через sudo. И линукс там посвежее:

Ubuntu 20.04.1 LTS

Дополнение

Я нашел вопрос - ответ https://devops.stackexchange.com/questions/14749/, который говорит, что во всём виноват snap: "Snap представляют собой уровень изоляции, аналогичный контейнерам, который предотвращает доступ ко всей файловой системе хоста. Домашние каталоги пользователей монтируются в привязки, что дает вам доступ к этим папкам. Если вы устанавливаете докер вне оснастки, у вас должен быть доступ для монтирования других каталогов хоста в контейнер"

Теперь пытаюсь понять, как дать установленному из снапа докеру нужный доступ...


Ответы (0 шт):