Я следовал этой настройке полностью. Запуск WSL1 с Docker Desktop на Windows 10. На данный момент меня не интересует WSL2. У меня нет Insider Windows.
Теперь я пытаюсь запустить контейнер с томом, чтобы файлы контейнера были скопированы в том. Согласно официальным документам :
Заполните том с помощью контейнера
Если вы запускаете контейнер, который создает новый том, как указано выше, и контейнер имеет файлы или каталоги в каталоге для монтирования (например, / app / вышеуказанный), содержимое каталога копируется в том.
Так что это должно быть возможно, но я должен упустить что-то действительно c здесь, потому что это просто не работает.
Я пробовал -v vol-name:/path/on/container
-> это создает именованный том ... где-то. Понятия не имею, где и как это просмотреть. Выполнение volume inspect vol-name
показывает путь, который не существует ни в WSL, ни в Docker Host (Windows). Я даже пытался смонтировать MobyVM, но его там тоже нет.
Я пробовал -v /c/full/path:/path/on/container
-> это создает монтирование типа привязки. Это пусто (по замыслу). Если он поместит файлы под /c/full/path
, я увижу их в контейнере под /path/on/container
, но это не то, что мне нужно. Мне нужно заполнить том содержимым из контейнера. Из того, что я понимаю из документов, мне нужно монтирование типа тома, а не монтирование типа связывания. В этом случае опции -v
принудительно устанавливают тип привязки
Я пробовал --mount type=volume,source=/c/full/path,destination=/path/on/container
-> Это приводит к error: docker: Error response from daemon: create /c/full/path: "/c/full/path" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path.
Разделитель пути не разрешен ...
I Я прочитал кое-что о специальных символах в паролях, которые являются проблемой, и сбросил свой пароль. Я прочитал о том, что / c / full / path требуется разрешение на полный доступ, и дал «каждому» полный доступ
Пожалуйста, помогите