Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
8
Help us understand the problem. What is going on with this article?
@acro5piano

ホスト側のCronで docker run する

More than 1 year has passed since last update.

結論

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

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とかで起動しっぱなしにしておいた方が楽かも?

参考

8
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
acro5piano
React.js / TypeScript / DevOps エンジニア。 Fastlane のコントリビューター。 Terraform と Ansible のファン。 ご相談は気軽に Remotehour から → https://remotehour.com/kay/quick

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
8
Help us understand the problem. What is going on with this article?