如何在Docker容器中配置定时任务?

在Docker容器中配置定时任务,可以通过以下两种方式进行:

  1. 使用cron定时器:
dockerfile
FROM ubuntu:20.04

RUN apt update && apt install -y cron  

# 定时任务 - 每分钟执行一次
ADD crontab.txt /etc/cron.d/

# crontab.txt内容
* * * * * root echo "Hello" >> /log.txt

这种方式在构建镜像时安装cron,并添加crontab定时任务配置文件,实现定时执行某命令。

  1. 使用bash脚本+定时器:
dockerfile
FROM ubuntu:20.04

# 添加bash脚本
ADD script.sh /

# 定时执行bash脚本 
CMD ["sh", "-c", "while :; do ./script.sh; sleep 60; done"]
script.sh内容:
bash
echo "Hello" >> /log.txt

这种方式在构建镜像时添加bash脚本,并在CMD中使用定时器每隔60秒执行一次该脚本,实现定时任务。
在运行容器时,两种方式都会定期执行echo “Hello” >> /log.txt命令,将Hello追加到log.txt文件中。