1.查看容器ID或名称:
docker ps
2.连接到正在运行的Docker容器
首先,我们需要连接到正在运行的Docker容器。我们可以使用docker exec
命令来实现这一步骤。
docker exec -it <容器ID或名称> /bin/sh
这行代码中,docker exec
表示执行在容器中执行命令,-it
参数表示以交互式的方式连接到容器,<容器ID或名称>
是你要连接的Docker容器的容器ID或名称,/bin/sh
是要执行的shell命令。
3.实操
接下采用彩虹聚合DNS管理系统和1Panel
1.创建文件
在1Panel安装彩虹聚合DNS管理系统的目录创建个.sh
文件,我这创建dns.sh
内容在彩虹聚合DNS管理系统-容灾切换-运行概览-操作说明-第2条
下面是我的执行命令
sleep 20 # 延迟20秒启动(我使用的彩虹聚合DNS管理系统,需要数据库启动了执行才有用。不需要的可以删除或者改成0)
cd /www/sites/dns/index/ && php think dmtask
2.查看容器ID或名称:
docker ps
会显示一堆内容,我这截取ID和名称CONTAINER ID
NAMES
212cfc09b7ed
1Panel-php7-3T4d
3.执行命令
我这采用ID来操作,我创建的文件是dns.sh(目录:/www/sites/dns/index/
这个和你在彩虹聚合DNS管理系统-容灾切换-运行概览-操作说明-第2条的一样)
docker exec -it 212cfc09b7ed /bin/sh /www/sites/dns/index/dns.sh
直接执行PHP我这还不会,只能创建.sh
文件来实现。2024.6.1学会了
docker exec 212cfc09b7ed sh -c "php /www/sites/dns/index/think dmtask"
docker好像会自动挂后台,不像直接执行的退出就不行了
4.开机自启动
采用直接执行PHP需要加sleep 20 # 延迟20秒启动 (我使用的彩虹聚合DNS管理系统,需要数据库启动了执行才有用。)
输入命令:
vi /etc/rc.local
Debian 系统 /etc/rc.local 文件(centos 文件 /etc/rc.d/rc.local)
输入 i 编辑,把:
sleep 20;docker exec 212cfc09b7ed sh -c "php /www/sites/dns/index/think dmtask"
放进去,按 Esc 然后输入 :wq! 回车保存退出
评论区(暂无评论)