繁体   English   中英

无法在docker中的主机和容器之间挂载卷

[英]Unable to mount volume between host and container in docker

希望你在这些困难时期过得很好。

我是 docker 新手,正在尝试通过自定义保存在我桌面上名为“website”的文件夹中的 index.html 文件来托管一些简单的静态内容。

我的配置:带有 WSL2 和 docker Docker 版本 19.03.13 的 Ubuntu-20.04,在操作系统版本 10.0.19042 和 Build 19042 的 Windows 10 家庭单语言版本上构建 4484c46d9d。

我拉取了 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

在此处输入图片说明

如果我尝试将此路径作为目标容器路径传递,我仍然会收到错误消息。

任何帮助是appriciated。

-曼尼

在 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM