#linux #docker #ubuntu #cron
Вопрос:
Я пытаюсь запускать контейнер Docker каждые две минуты, который останавливается с помощью задания cron, но, похоже, это не работает.
Что я сделал, так это запустил команду crontab -e
и добавил строку
*/1 * * * * docker start sender >> /home/cronlog.log 2>amp;1
Я добавил группу пользователей в Docker, как описано здесь (на самом деле я могу получить доступ к docker из терминала без sudo
)
Я также попытался добавить команду в сценарий, как показано ниже
*/1 * * * * /home/start_container.sh >> /home/cronlog.log 2>amp;1
со сценарием, содержащим
#!/bin/sh
docker start sender
но все равно ничего не происходит. Процесс cron работает так же, как с помощью команды ps -ef | grep cron
, которую я получил
root 881 1 0 08:42 ? 00:00:00 /usr/sbin/cron -f -P
nicola 10905 10178 0 11:31 pts/0 00:00:00 grep --color=auto cron
Я что-то упускаю? (Очевидно, что команды работают, если они запускаются вручную с терминала)
Комментарии:
1. что вы видите с
crontab -l
помощью ?
Ответ №1:
Попробуйте вместо этого использовать путь docker.
введите следующую команду, чтобы получить путь к докеру.
$ where docker
/usr/bin/docker
/bin/docker
затем попробуйте любой из путей в скрипте cron
*/1 * * * * /bin/docker start sender >> /home/cronlog.log 2>amp;1
или
*/1 * * * * /usr/bin/docker start sender >> /home/cronlog.log 2>amp;1
Ответ №2:
Оказалось, что по какой-то причине cron не нравится /home/
(по крайней мере, в данном конкретном случае)
Я исправил использование другого пути, такого как
*/1 * * * * docker start sender >> /tmp/cronlog.log 2>amp;1