可能是初学者的问题 - 但为什么复制不起作用?我玩过卷和挂载 - 我需要的是简单的共享目录,我可以从主机和容器读取/写入(主机必须写入文件,容器拾取并在另一个文件中写入响应)
docker run --rm -it --mount type=bind,source="$(pwd)"/sdt,target=/sdt alpine ls -al /sdt && cp /sdt/temp /sdt/temp2
total 8
drwxr-xr-x 4 root root 128 May 30 20:39 .
drwxr-xr-x 1 root root 4096 May 30 21:09 ..
drwxr-xr-x 2 root root 64 May 30 20:39 input
-rw-r--r-- 1 root root 5 May 30 20:35 temp
cp: /sdt/temp: No such file or directory
答案1
因为你的命令并没有像你想象的那样被解析。这里发生的事情是:
- 你的 shell 运行一个 docker 命令:
docker run --rm -it --mount type=bind,source="$(pwd)"/sdt,target=/sdt alpine ls -al /sdt
- 然后运行本地
cp
命令
cp /sdt/temp /sdt/temp2
/sdt/temp
而主机上没有。
尝试将整个命令放在引号中,以便所有内容都在容器中运行:
docker run --rm -it --mount type=bind,source="$(pwd)"/sdt,target=/sdt alpine "ls -al /sdt && cp /sdt/temp /sdt/temp2"
一旦完成,其行为就会按预期进行。