无法在 docker 中的主机和容器之间装载卷
Unable to mount volume between host and container in docker
希望你在这些困难时期过得很好。
我是 docker 的新手,我正在尝试通过自定义 index.html 文件来托管一些简单的静态内容,该文件保存在我桌面上名为 'website' 的文件夹中。
我的配置: Ubuntu-20.04 使用 WSL2 和 docker Docker 版本 19.03.13,在 [=37 上构建 4484c46d9d =] 10 家庭单一语言版本 OS 版本 10.0.19042 和内部版本 19042。
我提取了 nginx 的最新映像,但是当我按照 nginx docker 页面上的说明尝试将本地主机卷附加到 nginx 内的 html 文件时,它说
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-data\version-pack-data\community\docker\volumes
如果我尝试将此路径作为目标容器路径传递,我仍然会收到错误消息。
欢迎提供任何帮助。
-曼尼
在 Windows 上,路径必须使用 Windows-style semantics
命名。您不应在路径前使用前导斜杠。
docker run -v c:\Users\[path]:c:\[containerPath]
这是由于 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
希望你在这些困难时期过得很好。
我是 docker 的新手,我正在尝试通过自定义 index.html 文件来托管一些简单的静态内容,该文件保存在我桌面上名为 'website' 的文件夹中。
我的配置: Ubuntu-20.04 使用 WSL2 和 docker Docker 版本 19.03.13,在 [=37 上构建 4484c46d9d =] 10 家庭单一语言版本 OS 版本 10.0.19042 和内部版本 19042。
我提取了 nginx 的最新映像,但是当我按照 nginx docker 页面上的说明尝试将本地主机卷附加到 nginx 内的 html 文件时,它说
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-data\version-pack-data\community\docker\volumes
如果我尝试将此路径作为目标容器路径传递,我仍然会收到错误消息。
欢迎提供任何帮助。
-曼尼
在 Windows 上,路径必须使用 Windows-style semantics
命名。您不应在路径前使用前导斜杠。
docker run -v c:\Users\[path]:c:\[containerPath]
这是由于 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