dockerコンテナcronタイミングタスクの実行について
2885 ワード
一、コンテナでcronを有効にする方法
ここでは、タイミングに集中するシナリオを示します.ホストのcronを使用してタイミングタスク を実現する新しいコンテナを作成し、タイミングタスク を実行します.既存のコンテナにcronを取り付け、2つのプロセス を実行する.
以下、方式1の使用手順について詳しく説明します.方式2と方式3については、Docker cronタイミングタスクを参照してください.
二、ホストのcronを使用してdocker容器内のタイミングタスクを実現する
1.ホストホストインストールcrontab
2.crond常用コマンド
crontab共通コマンド
3.指定したdockerコンテナ内のコマンドまたはスクリプトを実行する
注意:1.実行に関連するスクリプトおよびログ・ファイルに権限を付与する必要があります.2.タイミング・タスクが正常に実行されなかった場合は、タイミング・タスク出力ログを表示します.
3.エラー「the inputデバイスis not a TTY」が発生した場合、解決方法は以下の通りです.
参考文献
crontabのインストールと操作 dockerコンテナの外でコンテナ内のコマンドを実行する linuxインストールcrontabエラー:No package vixie-cron available.Error:No thing to do Docker容器使用問題:Failed to get D-Bus connection:Operation not permitted エラー:the input device is not a TTY
ここでは、タイミングに集中するシナリオを示します.
以下、方式1の使用手順について詳しく説明します.方式2と方式3については、Docker cronタイミングタスクを参照してください.
二、ホストのcronを使用してdocker容器内のタイミングタスクを実現する
1.ホストホストインストールcrontab
# vixie-cron cron
yum install vixie-cron
# crontabs 、 、 cron
yum install crontabs
#
# “yum install vixie-cron” , “No package vixie-cron available. Error: Nothing to do”, :
yum -y install vim-enhanced.x86_64
2.crond常用コマンド
service crond start //
service crond stop //
service crond restart //
service crond reload //
service crond status //
chkconfig crond on // crond :
chkconfig –list crond // crond ,2、3、4、5 crond
chkconfig crond off// crond
crontab共通コマンド
crontab -e ,wq 。
crontab -e , /etc/crontab
crontab -l //
crontab -l -u jp // jp
crontab -r //
3.指定したdockerコンテナ内のコマンドまたはスクリプトを実行する
#1. test.sh
DOCKER_ID=be7d32f830fd
sudo docker exec -it $DOCKER_ID /bin/bash -c './config/test.sh'
# 2. ( )crontab -e
*/1 * * * * /root/docker-compose/curators/test.sh >> /root/docker-compose/curators/test.log
注意:1.実行に関連するスクリプトおよびログ・ファイルに権限を付与する必要があります.2.タイミング・タスクが正常に実行されなかった場合は、タイミング・タスク出力ログを表示します.
#
cat /etc/crontab
# 4 :
SHELL: SHELL ( bash shell),
PATH: 。
MAILTO: Cron MAILTO 。 MAILTO (MAILTO=""), 。
HOME: HOME
3.エラー「the inputデバイスis not a TTY」が発生した場合、解決方法は以下の通りです.
# sudo docker exec -it $DOCKER_ID /bin/bash -c './config/test.sh' ‘t’
sudo docker exec -i $DOCKER_ID /bin/bash -c './config/test.sh'
参考文献
crontabのインストールと操作 dockerコンテナの外でコンテナ内のコマンドを実行する linuxインストールcrontabエラー:No package vixie-cron available.Error:No thing to do Docker容器使用問題:Failed to get D-Bus connection:Operation not permitted エラー:the input device is not a TTY