由于容器只能自动运行一个程序,如果需要容器同时自动运行多个程序(nginx+php+ftp)的时候就需要用到docker exec <容器名称> <目录>来启动容器中的程序了。关键要找到php的安装目录
第一步了解php版本
php -v
第二步了解php安装目录
which php-fpm7.4
如果安装有那么系统会返回php-fpm目录,如果没有或输入错误则什么都不显示。
正常情况下系统会返回类似这样的目录:
/usr/sbin/php-fpm7.4
第三步运行php-fpm
直接运行/usr/sbin/php-fpm7.4回车之后,那么你使用service php status查询php状态时候
将会显示进程正在运行:
php-fpm7.4 is running
第四步终止掉前面的容器运行开始编写.sh批处理
编写test.sh文件并保存
sudo docker start bendi
sudo docker exec bendi /usr/sbin/php-fpm7.4
sudo docker exec -it bendi /bin/bash
赋予test.sh执行权限
chmod +x test.sh
直接输入test.sh路径即可启动容器并运行其中的php-fpm守护进程
最后,其实最后发现直接使用exec <容器> <命令>也可以执行具体命令
例如你要执行容器ftptest中的service vsftpd start
直接docker exec ftptest service vsftpd start即可