【问题标题】:Unable to mount volume between host and container in docker无法在 docker 中的主机和容器之间挂载卷
【发布时间】:2021-03-01 20:53:49
【问题描述】:

希望您在这些困难时期一切顺利。

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

我的配置: Ubuntu-20.04 和 WSL2 和 docker Docker 版本 19.03.13,在操作系统版本 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

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

如有任何帮助,我们将不胜感激。

-曼尼

【问题讨论】:

    标签: docker nginx docker-volume docker-image ubuntu-20.04


    【解决方案1】:

    这是由于 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
    

    【讨论】:

      【解决方案2】:

      在 Windows 上,路径必须使用 Windows-style semantics 命名。路径前不应使用前导斜杠。

      docker run -v c:\Users\[path]:c:\[containerPath]
      

      【讨论】:

      • 我确实尝试过,但我找不到我的容器的存储位置,如果我使用 Windows 样式语义指定源路径和目标路径,我会收到以下错误:```host@HOST :~$ docker run --name website -v C:\Users\HOST\Desktop\website:D:\Container\nginx\html:ro -d -p 8080:80 nginx:latest docker: 来自守护进程的错误响应:无效卷规范:'C:UsersHOSTDesktopwebsite:D:Containernginxhtml:ro'。请参阅“docker run --help”。 ```
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-07
      • 1970-01-01
      • 2021-01-13
      • 2017-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多