14
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ホスト側のCronで docker run する

Last updated at Posted at 2016-11-21

結論

この記事を書いた直後に、別の解決策を発見してしまった。

crontab
* * * * * docker run -i some-image some-command

癖でdocker run -itしてしまっていたのが原因でした。

↓ここから下は模索中で、恐らく役に立たない記事です。

やりたいこと

定期的に、Dockerイメージを動かしたい。

Docker内部のCronから動かすのではなく、ホスト側のCronでdocker runしたい。

最初、

crontab
* * * * * docker run -it some-image some-command

としていたが、the input device is not a TTYと怒られてしまう。

そこで、予めコンテナを作成&実行しておき、そのコンテナにCronからコマンドを渡すという方法があるらしい。
実行するコマンドは、停止しなければ何でも良い。

docker run -it -d --name some-container some-image tail -f /some/log.log
crontab
* * * * * docker exec some-container some-command

メモ

  • docker exec -itとすると、また怒られてしまう
  • --rmオプションを付けないと、コンテナ名が重なってしまい不可
  • -dオプションで、デーモンっぽく起動できる
  • --rmオプションと-dオプションは併用できない。なんで?
  • Docker内部にCronをインストールしてしまって、cron -fとかで起動しっぱなしにしておいた方が楽かも?

参考

14
8
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?