簡體   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