В чем разница между этими двумя командами запуска докеров и почему одна работает, а другая нет?

Рабочая команда

docker run --publish=7474:7474 --volume=$HOME/neo4j_test/data:/data neo4j

Не работает

docker run --publish=7474:7474 --volume=C:/Users/USERNAME/neo4j_test/data:/data neoj

docker run --publish=7474:7474 --volume=C:\Users\USERNAME\neo4j_test\data:/data neo4j

Ошибка для этих команд

C: \ Program Files \ Docker Toolbox \ docker.exe: ответ об ошибке от демона: недопустимая спецификация подключения привязки «C: UsersUSERNAMEneo4j_testdata: / data»: недопустимый режим: / data. См. 'C: \ Program Files \ Docker Toolbox \ docker.exe run --help'.

В нерабочих командах я просто заменил $HOME абсолютным путем к папке моего профиля пользователя C:/Users/USERNAME

ОБНОВЛЕНИЕ

Я действительно проверил значение для $HOME, выполнив echo $HOME в Windows Powershell. И это на самом деле C:\Users\USERNAME. Я также посмотрел на ссылку, которую прокомментировал @Titouan Freville. Итак, я использовал команду

docker run --publish=7474:7474 --volume=/c/Users/USERNAME/neo4j_test/data:/data neo4j

Вместо того

docker run --publish=7474:7474 --volume=C:/Users/USERNAME/neo4j_test/data:/data neoj

И теперь он работает. Прямо сейчас мне интересно, где происходит преобразование $HOME из C:\Users\USERNAME в /c/Users/USERNAME

17
jmc 24 Окт 2016 в 11:09

2 ответа

Лучший ответ

Чтобы закрыть тему. Вот решение;) файл монтирования панели инструментов Docker в Windows

Кроме того, интерполяция $ HOME докером в Windows должна быть совместима с ним, поэтому он должен преобразовывать его самостоятельно, когда вы вызываете его в команде докера.

4
Titouan Freville 24 Окт 2016 в 09:12

Для тех, кто все еще имеет эту проблему с Docker-for-Windows, вот 2 эффективных решения:

  • Добавьте к команде префикс MSYS_NO_PATHCONV=1 - полностью: MSYS_NO_PATHCONV=1 docker run -v /c/path:/path
  • Используйте двойную косую черту // в начале - полностью: docker run -v //c/path:/path

Источник: https://github.com/moby/moby/issues/24029# issuecomment-250412919

2
AdrienW 25 Авг 2020 в 13:45