Docker Cron Jobs — Run Scheduled Tasks in Containers

0 0 * * *

Every day at 12:00 AM

Next 10 Executions

Times shown in UTC

  • Tue, May 19, 202600:00
  • Wed, May 20, 202600:00
  • Thu, May 21, 202600:00
  • Fri, May 22, 202600:00
  • Sat, May 23, 202600:00
  • Sun, May 24, 202600:00
  • Mon, May 25, 202600:00
  • Tue, May 26, 202600:00
  • Wed, May 27, 202600:00
  • Thu, May 28, 202600:00

Field Breakdown

0
Minute
0
0
Hour
0
*
Day of Month
Every day
*
Month
Every month
*
Day of Week
Every day of week

About This Schedule

Running cron jobs in Docker containers uses standard 5-field cron syntax, but requires some container-specific setup.

Common approaches:

1. Cron inside the container:

FROM alpine:latest
RUN apk add --no-cache dcron
COPY crontab /etc/crontabs/root
CMD ["crond", "-f", "-d", "8"]

2. Docker host cron calling docker exec:

0 0 * * * docker exec my-container /app/daily-job.sh

3. Using a sidecar scheduler (like Ofelia or supercronic):

services:
  scheduler:
    image: mcuadros/ofelia:latest
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

Key considerations:

  • Container cron doesn't have access to environment variables by default
  • Logs go to container stdout/stderr
  • Use supercronic for better container-native cron behavior
  • For Kubernetes, use CronJobs instead of in-container cron

Frequently Asked Questions