【问题标题】:Ubuntu 16.04 Cron to run Docker containerUbuntu 16.04 Cron 运行 Docker 容器
【发布时间】:2018-08-29 14:16:09
【问题描述】:

我有一个运行 Ubuntu 16.04 的虚拟机,我想在其上运行 cron 调度的 Docker 容器。我已经配置了 Docker 主机和我的图像存储库,以便 VM 可以访问它们,并且图像在机器上运行良好。

我的问题是,当我在/var/spool/cron 中使用 crontab -e 创建一个 cron 计划时,容器没有出现。我应该能够使用$ docker ps -a 查看任何停止的容器,但它没有显示它们。运行sudo grep CRON -i /var/log/syslog 显示输出:

Mar 20 16:22:01 SpacyVM CRON[121879]: (bdsadmin) CMD (docker run -d 
bdsdev.azurecr.io/crawler-public)
Mar 20 16:22:05 SpacyVM CRON[121878]: (CRON) info (No MTA installed, 
discarding output)
Mar 20 16:24:01 SpacyVM CRON[124254]: (bdsadmin) CMD (docker run -d 
bdsdev.azurecr.io/crawler-public)
Mar 20 16:24:02 SpacyVM CRON[124253]: (CRON) info (No MTA installed, 
discarding output)

现在,这确实每 2 分钟运行一次,按照用于调试目的的计划,但 docker ps -a 没有显示任何内容,即使容器应该已经退出,因此在我使用 docker rm $(docker ps -aq) 之前应该处于空闲状态。有没有人见过这个问题?

这是我在 crontab 中配置的工作:

*/2 * * * * docker run -d bdsdev.azurecr.io/crawler-public

注意:我没有为要输出到的 cronjobs 创建邮件设置,因此出现No MTA... 错误,我在 Ubuntu 虚拟机中运行此设置,而不是在 Ubuntu docker 基础映像上运行。

【问题讨论】:

    标签: azure docker cron ubuntu-16.04


    【解决方案1】:

    发现我的问题。当我最初使用 grep 进行故障排除时,我的搜索忽略了日志流中相当重要的部分。于是通过使用vim查看/var/log/syslog

    Mar 20 06:34:01 SpacyVM dockerd[1469]: time="2018-03-20T06:34:01.634861659Z" level=info msg="Attempting next endpoint for pull after error: manifest unknown: manifest unknown"
    

    我在我的 crontab 文件中出现拼写错误,因此 docker 守护程序无法定位该图像,从而导致了这个问题。

    把它归结为业余时间

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-17
      • 2015-12-28
      • 2017-08-18
      • 1970-01-01
      • 1970-01-01
      • 2018-12-27
      • 2021-05-06
      • 2018-08-12
      相关资源
      最近更新 更多