在我的 ubuntu 20 VM(win11 主机上的 hyper-V)上,我想运行 docker 容器并将主机路径/tmp/x
(src dir) 中的目录挂载到 docker 容器中。我使用以下命令:
docker run -it -v /tmp/x:/home/a 5472ef85a106 bash --verbose
在容器中,我可以看到目标目录,/home/a
但它不包含任何内容,即使主机上的 src-dir 有内容。当我在那里创建一个文件时,它不会出现在主机上的 src 文件夹中,但是当我使用相同的命令挂载另一个容器时,我可以/home/a
再次在其目标目录 ( ) 中找到该文件,所以看起来 docker 使用不知何故不同的 src 目录。有人可以向我解释这种行为或指导如何调试吗?
我尝试安装另一个目录,它工作得很好(例如来自 src /home/something
)。当我docker inspect
在容器上运行时,两个安装(工作的和坏的)的输出看起来相同:
"Mounts": [
{
"Type": "bind",
"Source": "/tmp/x",
"Destination": "/home/asdf",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/home/peter/tmp/archive",
"Destination": "/home/works",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
/tmp 本身并不是主机上的挂载,我在 docker 调用中尝试了不同的挂载选项。