Docker пытается mkdir папку, которую я монтирую

Почему Docker пытается создать папку, которую я монтирую? Если я перейду на C:\Users\szx\Projects

docker run --rm -it -v "${PWD}:/src" ubuntu /bin/bash

Эта команда завершается со следующей ошибкой:

C:\Program Files\Docker Toolbox\docker.exe: Error response from daemon: error while creating mount source path '/c/Users/szx/Projects': mkdir /c/Users/szx/Projects: file exists.

Я использую Docker Toolbox на Windows 10 Home.

Ответ 1

Я получил эту ошибку после изменения пароля Windows. Мне пришлось зайти в настройки Docker и выполнить "Сброс учетных данных" в разделе "Shared Drives", а затем перезапустить Docker.

Ответ 2

Убедитесь, что папка используется совместно со встроенной виртуальной машиной докера. Это отличается от различных типов докеров для настольных установок. Я считаю, что с помощью панели инструментов вы можете найти общие папки в конфигурации VirtualBox. Следует также отметить, что эти каталоги чувствительны к регистру. Один из способов отладки - попробовать:

docker run --rm -it -v "/:/host" ubuntu /bin/bash

И посмотрите, как выглядит файловая система в разделе "/host".

Ответ 3

Если вы работаете с отдельным пользователем Windows, с которым вы делитесь томом (C: обычно): вам нужно убедиться, что у него есть доступ к папкам, с которыми вы работаете - включая их родителей, вверх в ваш домашний каталог.

Также убедитесь, что EFS (шифрованная файловая система) отключена для общих папок.

Смотрите также мой ответ здесь.

Ответ 4

Вы использовали этот контейнер раньше? Вы можете попытаться удалить все докеры-тома перед повторным выполнением своей команды.

docker volume rm '(docker volume ls -qf dangling=true)'

Я пробовал вашу команду локально (MacOS) без каких-либо ошибок.

Ответ 5

Я столкнулся с этой ошибкой, когда другой запущенный контейнер уже использовал папку, которая монтируется в команде запуска docker. Пожалуйста, проверьте на то же самое и, если не нужно, остановите контейнер. Лучшее решение - использовать том с помощью следующей команды:

том докера

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