docker exec命令在完成执行后不会返回

我启动了一个docker容器,该容器基于一个具有“run.sh”文件的镜像。 在shell脚本中,我使用docker exec,如下所示

docker exec <container-id> sh /test.sh 

test.sh完成执行,但docker执行不会返回,直到我按Ctrl + C。 因此,我的shell脚本永远不会结束。 任何可能导致这一点的指针。

我的这个命令就像一个魅力一样。 也许你只是忘了二进制文件的path( / bin / sh )?

 docker exec 7bd877d15c9b /bin/bash /test.sh 

文件位置在

 /test.sh 

文件内容:

 #!/bin/bash echo "Hi" echo echo "This works fine" sleep 5 echo "5" 

输出:

 ArgonQQ@Terminal ~ docker exec 7bd877d15c9b /bin/bash /test.sh Hi This works fine 5 ArgonQQ@Terminal ~ 

我可以通过添加-it参数来工作:

docker exec -it <container-id> sh /test.sh