dockerコンテナcronタイミングタスクの実行について

2885 ワード

一、コンテナでcronを有効にする方法
ここでは、タイミングに集中するシナリオを示します.
  • ホストのcronを使用してタイミングタスク
  • を実現する
  • 新しいコンテナを作成し、タイミングタスク
  • を実行します.
  • 既存のコンテナにcronを取り付け、2つのプロセス
  • を実行する.
    以下、方式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