我想通过docker run
命令运行docker,并希望像bleow一样传递crontab命令。
crontab -l | '{ /bin/cat; /bin/echo "*/5 * * * * <some command>"; }' | crontab -
上面的命令将创建一个cronscript,它将在新创建的docker容器中每5分钟运行一次。
构建图像时我不需要提供此命令。 *安排作业时,将创建此泊坞窗。
答案 0 :(得分:3)
docker run -it image /bin/bash -c "crontab -l | /bin/cat; /bin/echo \"*/5 * * * * <some command>\" |crontab - ; service cron restart"
答案 1 :(得分:2)
基于docs,您确实可以使用docker run
指定命令。
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
这里需要注意的一点是,这将覆盖图像中烘焙的任何CMD
指令,这可能是不合需要的。如果覆盖不是一个选项,那么你必须使用docker exec -it <CONTAINER_NAME> bash
EXEC进入容器,并按照Abe的答案运行命令。
因此,如果您正在运行的图像“不”在Dockerfile
中有CMD指令,您应该能够通过以下方式完成此操作:
docker run -it some/image /bin/bash -c "crontab -l | '{ /bin/cat; /bin/echo \"*/5 * * * * <some command>\" }' | crontab -"
答案 2 :(得分:0)
您可以访问容器的bash line命令并运行命令,如下所示:
docker exec -it <my container> /bin/bash
并且,您将获得对容器cli的访问权。