Docker 绑定问题

Docker 绑定问题

可能是初学者的问题 - 但为什么复制不起作用?我玩过卷和挂载 - 我需要的是简单的共享目录,我可以从主机和容器读取/写入(主机必须写入文件,容器拾取并在另一个文件中写入响应)

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

因为你的命令并没有像你想象的那样被解析。这里发生的事情是:

  1. 你的 shell 运行一个 docker 命令:
docker run --rm -it --mount type=bind,source="$(pwd)"/sdt,target=/sdt alpine ls -al /sdt
  1. 然后运行本地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"

一旦完成,其行为就会按预期进行。

相关内容