You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

宿主机crontab执行Docker容器内脚本不生效问题求助

从你提供的docker events日志可以看到exec实例被正常创建后短时间内就退出,可按以下步骤排查修复:

问题排查与修复方案

1. 修正crontab中的docker exec命令参数

crontab运行时无交互式终端,docker exec默认需要伪终端的场景会直接退出,需要添加-i参数,同时指定docker的绝对路径(crontab默认环境变量不包含docker所在路径,会出现找不到命令的问题):
先在宿主机执行which docker获取docker的完整路径,通常为/usr/bin/docker,修改后的定时任务配置如下:

*/1 * * * * root /usr/bin/docker exec -i testsite4 /home/tester.sh

2. 检查容器内脚本配置

  • 确认脚本有可执行权限:进入容器执行chmod +x /home/tester.sh
  • 确认脚本开头添加了shebang解释器声明,比如首行写#!/bin/bash
  • 确认脚本中创建test文件夹使用绝对路径,比如mkdir -p /home/test,避免相对路径导致文件夹生成到了exec默认的工作目录,而非你预期的路径

3. 前置验证测试

先在宿主机的交互式终端直接执行完整的docker exec命令,确认能正常生成目标test文件夹,手动执行无问题后再放入crontab运行。

4. 增加日志排查

如果修改后还是不生效,可以把定时任务的输出重定向到日志文件,快速定位问题:

*/1 * * * * root /usr/bin/docker exec -i testsite4 /home/tester.sh >> /var/log/tester_cron.log 2>&1

后续直接查看/var/log/tester_cron.log即可看到具体报错信息。

内容的提问来源于stack exchange,提问作者JJMeliodax

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 09:09:03