如何从PHP运行Docker?

我是使用Docker的初学者,我试图从php运行docker,特别是我需要运行openface代码。 我使用这里提供的命令行https://cmusatyalab.github.io/openface/setup/ ,以确保docker运行在我的电脑correclty,它的工作原理。 但现在我需要从PHP调用它,我写了如下batch file相同的命令

docker run -p 9000:9000 -p 8000:8000 -t -i bamos/openface /bin/bash cd /root/openface ./demos/compare.py images/examples/{lennon*,clapton*} pause 

并尝试通过调用在php中执行它

 echo shell_exec ("test.bat"); 

但是当我直接运行batch file时,只执行第一行。 因为看起来下一个命令不是在Docker容器中执行的。

cmd屏幕

我怎样才能使所有的命令执行? 任何帮助将非常感激,谢谢

问题是第一个bash在退出之前不会退出,其余的命令是由主机bash解释的。

你需要的是你的工作已经完成,然后你进入一个bash(容器内)

 docker run -p 9000:9000 -p 8000:8000 -t -i bamos/openface /bin/bash -c "cd /root/openface && ./demos/compare.py images/examples/{lennon*,clapton*} && exec bash" 

首先“bash -c”是执行命令,最后一个命令exec bash覆盖主bash,并给你一个shell