我正在尝试在运行docker容器中运行特定命令。
Docker exec -t t1 ls /tmp/sth/*
作为回报,我收到了
ls: cannot access '/tmp/sth/*': No such file or directory
实际上当我在容器内执行命令时一切正常。 Container正在使用Debian,而本地机器正在使用Windows。我试图找到它,但不能。
答案 0 :(得分:3)
如果你想在容器中使用shell 来扩展你的glob,你需要......好吧......实际上在容器内运行一个shell。容器外部的文件无法看到容器内的文件(当然),因此它会传递ls
文字模式,而不是您想要的目录中的文件列表。
因此:
docker exec -t t1 sh -c "ls /tmp/sth/*"
...请注意,我通常会使用单引号作为命令,但由于您的主机是Windows,因此使用双引号,因为它们更有可能使用cmd.exe
。