#docker #nginx #docker-volume #docker-image #ubuntu-20.04
#docker #nginx #docker-volume #docker-образ #ubuntu-20.04
Вопрос:
Надеюсь, у вас все хорошо в эти трудные времена.
Я новичок в docker и пытаюсь разместить простой статический контент, настроив index.html файл, который сохраняется в папке с именем «веб-сайт» на моем рабочем столе.
Моя конфигурация: Ubuntu-20.04 с версиями WSL2 и docker Docker 19.03.13, сборка 4484c46d9d на Windows 10 Home Single Language edition с версией ОС 10.0.19042 и сборкой 19042.
Я извлек последнее изображение nginx, но когда я пытаюсь подключить локальный хост-том к html-файлу внутри nginx, следуя инструкциям на странице docker nginx, он говорит
host@HOST:~$ docker run --name website -v /mnt/c/Users/HOST/Desktop/website:usr/share/nginx/html:ro -d -p 8080:80 nginx:latest
docker: Error response from daemon: invalid volume specification: '/run/desktop/mnt/host/wsl/docker-desktop-bind-mounts/Ubuntu-20.04/<container id>:usr/share/nginx/html:ro': invalid mount config for type "bind": invalid mount path: 'usr/share/nginx/html' mount path must be absolute.
See 'docker run --help'.
Я попытался устранить неполадки в пути, но не могу найти, где изображения хранятся на моем компьютере. Единственная подсказка, которую я смог найти, была на форуме github:
\wsl$docker-desktop-dataversion-pack-datacommunitydockervolumes
Если я попытаюсь передать этот путь в качестве пути целевого контейнера, я все равно получу сообщение об ошибке.
Любая помощь приветствуется.
-Мэнни
Ответ №1:
В Windows пути должны быть названы с помощью Windows-style semantics
. Вы не должны использовать косую черту перед путем.
docker run -v c:Users[path]:c:[containerPath]
Комментарии:
1. Я пробовал это, но не могу найти, где хранится мой контейнер, и если я укажу исходный и целевой пути, используя семантику в стиле Windows, я получаю следующую ошибку: « host@HOST: ~ $ docker run —name website -v C:UsersHOSTDesktopwebsite:D:Containernginxhtml:ro -d -p 8080:80 nginx: последняя версия docker: ответ об ошибке от демона: недопустимая спецификация тома: ‘C: UsersHOSTDesktopwebsite: D: Containernginxhtml:ro’. См. раздел «запуск docker — справка». «`
Ответ №2:
Это было вызвано отсутствием / перед каталогом usr. Это то, что указывалось в ошибке:
host@HOST:~$ docker run --name website -v /mnt/c/Users/HOST/Desktop/website:usr/share/nginx/html:ro -d -p 8080:80 nginx:latest
docker: Error response from daemon: invalid volume specification: '/run/desktop/mnt/host/wsl/docker-desktop-bind-mounts/Ubuntu-20.04/<container id>:usr/share/nginx/html:ro': invalid mount config for type "bind": invalid mount path: 'usr/share/nginx/html' mount path must be absolute.
See 'docker run --help'.
«недопустимая конфигурация монтирования для типа»bind»: недопустимый путь монтирования: путь монтирования’usr / share / nginx / html’ должен быть абсолютным».
Вместо этого он должен был быть:
docker run --name website -v /mnt/c/Users/HOST/Desktop/website:/usr/share/nginx/html:ro -d -p 8080:80 nginx:latest