Appearance
Container 中启动定时任务
0x001 场景
在Linux中定时任务一般使用cron,ubuntu的官方镜像中已经包含了cron,可以直接使用,不过 Dokcer 如果没有循环任务的话执行完毕后会直接关闭容器,下面会介绍一种方法。
0x002 文件准备
cron-docker // 项目根路径
├── Dockerfile // Dockerfile文件
├── sources.list // 源文件
└── crontabfile // 定时任务文件
0x003 编写Dockerfile文件
FROM ubuntu:latest
MAINTAINER taroballs
COPY sources.list /etc/apt/sources.list
RUN apt-get update && apt-get -y install cron
# Add crontab file in the cron directory
ADD crontabfile /etc/cron.d/hello-cron
# Give execution rights on the cron job
RUN chmod 0644 /etc/cron.d/hello-cron
# Create the log file to be able to run tail
RUN touch /var/log/cron.log
RUN crontab /etc/cron.d/hello-cron
# Run the command on container startup
CMD cron && tail -f /var/log/cron.log
0x004 编写crontabfile文件
* * * * * echo "Hell0 w0r1d for yOu" >> /var/log/cron.log
0x005 构建镜像
docker build -t cron-docker .
0x006 运行容器
docker run -itd cron-docker
0x007 进入容器
docker exec -it a53df89ec72d /bin/bash
0x008 查看定时任务
crontab -l
0x009 查看日志
cat /usr/log/cron.log