我想自动在Docker容器内执行任务。应该执行的任务应该在特定的已安装目录中运行。为此,我使用以下命令:
docker run --rm -v /a/dir/on/my/host:/tmp some_container /bin/bash -c "cd /tmp/dir/inside/volume && echo \"$PWD\""
,出于简洁,紧随其后的是实际任务。
PWD
应该给我/tmp/dir/inside/volume
,但是会打印/a/dir/on/my/host
。 为什么?
最佳答案
在运行容器之前,将扩展$PWD
。使用单引号而不是双引号来延迟扩展。同样,使用--workdir
或-w
代替cd .. &&
和subshell更简单。
docker run --rm -v /a/dir/on/my/host:/tmp some_container /bin/bash -c 'cd /tmp/dir/inside/volume && echo "$PWD"'
或者我建议:
docker run --rm -v /a/dir/on/my/host:/tmp -w /tmp/dir/inside/volume /some_container pwd
关于linux - 为什么我无法在Docker容器中进行CD播放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60228100/