私は自分自身のLinuxコンテナを作成し、実行状態にしています。私は1日後に自動的に実行中のコンテナを削除したい。稼働中のコンテナを1日後に自動的に削除することはできますか?
自動的にコンテナを削除することはありますか?
可能であれば、Dockerfileでスクリプト/コードをどこに追加する必要がありますか?
私は自分自身のLinuxコンテナを作成し、実行状態にしています。私は1日後に自動的に実行中のコンテナを削除したい。稼働中のコンテナを1日後に自動的に削除することはできますか?
自動的にコンテナを削除することはありますか?
可能であれば、Dockerfileでスクリプト/コードをどこに追加する必要がありますか?
私は以前、この要件を持っていたと私はapache2の1DAYに対して実行bashスクリプト、 に& &睡眠86400を開始
サービスのようなスクリプトファイルに睡眠86400を使用していました。
さもなければ、あなたは決して明示的にこれを行う機能で構築されたありません
を説明し、このスレッドを通過することができます。しかし、いくつかの場所でソリューションをハックアップすることができます。コンテナ内
、あなたが実行エントリポイント持つことができます。
#!/bin/sh
(sleep 86400 && kill 1 && sleep 10 && kill -9 1)&
exec "[email protected]"
、一日寝SIGTERMを送信するにプロセスに10秒を与えるバックグラウンドでサブシェルを実行します正常終了し、SIGKILLを送信します。最後の幹部は、あなたが一日の後に、PID 1を殺すためにヘルスをハイジャックすることができますCMD
ps
コマンドでプロセスの開始時刻を調べることができます。容器の外側
、あなたはおそらくcronの中で、スクリプトを実行することができ、docker ps
の出力をチェックすること、のためにgrepする「アップ。*日」、および選択的にマッチした行のdocker rm -f
を実行します。私はdocker ps
の場合は--format
オプションを使用してスクリプトを作成し、コンテナのラベルを使用してこのアクションを実行するコンテナを制限することをお勧めします。
99,999秒は27.77時間、1日は86400秒が必要です。 – BMitch
それは1日のために私がテスト環境だったのでちょうど99999を使用しました、正確な1日の答えを更新します –