実行中のコンテナが終了したときに、コンテナが完全に終了する前に環境をクリーンアップするなど、いくつかの定義済みアクションを実行するにはどうすればよいでしょうか。これはプレストップに似たフック体験です。ただし、Docker 自体はこの機能を提供することはできません。この記事では、Linux 組み込みコマンド トラップを組み合わせて、コンテナーが正常に閉じられる前にカスタム操作を実装します。 実行中のコンテナが終了したときに、コンテナが完全に終了する前に環境をクリーンアップするなど、いくつかの定義済みアクションを実行するにはどうすればよいでしょうか。これはプレストップに似たフック体験です。ただし、Docker 自体はこの機能を提供することはできません。この記事では、Linux 組み込みコマンド トラップを組み合わせて、コンテナーが正常に閉じられる前にカスタム操作を実装します。 コンテナを閉じる方法実行中のコンテナをシャットダウンする方法は 3 つあり、いずれも docker コマンドラインによって開始されると理解しています。
Docker の設計者は、理由もなくコンテナをシャットダウンするための 3 つのコマンドの組み合わせを設計することはありません。どのようなシナリオで 3 つの方法を使用すべきでしょうか? コンテナを終了するこれら 3 つの方法は、それぞれ若干異なります。これらの違いを説明する前に、コンテナとは関係ないと思われるいくつかの知識ポイント、つまり SIGNAL について触れておく必要があります。 プロセスとシグナルユーザーはシグナルを送信することでプロセスと通信できます。 ほぼすべての運用および保守エンジニアは、プロセスを強制終了するために次のコマンドを実行したことがあります。
このコマンドは正しいようです。プロセスを「強制終了」しましたが、なぜ「-9」なのでしょうか? 9 はシグナル SIGKILL のコードです。上記のコマンドは、実際に対応するプロセスにシグナルを送信します。このシグナルによって、プロセスが強制終了されます。
各信号の意味を詳しく説明するつもりはありません。私のスキルはまだそこまでには程遠いです。ここでは、私たちのトピックに関連する知識だけを取り上げ、説明します。 私たちのトピックに関連するシグナルは
コンテナとシグナルコンテナの本質は、カプセル化されたプロセスのグループです。したがって、冒頭で述べた 3 つのコマンド ライン メソッドを使用して実行中のコンテナーを閉じることは、本質的には、コンテナー内のプロセスと対話してプロセスを「強制終了」するシグナルを送信するプロセスです。
比較すると、実行中のコンテナを停止するために さて、いよいよ本題に入りましょう。 信号をキャプチャして処理するシグナル Linux には、シグナルをキャプチャし、プロセスが完全に終了する前に特定のタスクが実行されるようにする組み込みの
基本的な使い方は以下のとおりです。
アイデアは明確です。コンテナが終了する前に実行する必要があるすべての処理を完了するには、コンテナの起動スクリプトに 以下は、コンテナの ENTRYPOINT として実行されるスクリプトの例です。 #!/bin/bash 関数 clean_up_term { rm -rf /データ/tmp echo "clean_up_term が実行中" } トラップ clean_up_term SIGTERM ((i=1;i<=1000;i++)) の場合 する echo "$i を待つ" 睡眠1 終わり コンテナが起動したら、別のターミナルから
これで、docker コンテナが正常に終了する前に、trap を使用して環境のクリーンアップを実行する方法についての説明は終了です。docker コンテナ実行環境のクリーンアップの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: 中国語と英語のフォント名の比較表(FounderとArphicを含む)
1. haslayout と bfc は IE 固有の標準属性です。 2. BFC はページ上の分離...
サブスクリプションメッセージテンプレートを選択または作成するWeChat アプレットにログインし、「...
国慶節の休暇後、Windows アップデート後に VMware 仮想マシンが開けなくなり、「VMwa...
目次序文さまざまなオブジェクト間の関係配列バッファ型付き配列Uint8ClampedArray文字間...
システム環境: Win10 64ビットMySQL バージョン: mysql-5.7.18-winX6...
目次背景ターゲット効果アイデア成し遂げるスワイパーは変更を聞きますカスタムドットモジュール変更イベン...
1. 公式サイトからダウンロード: https://dev.mysql.com/downloads/...
1. Nginx ステータス監視Nginx には、Nginx の全体的なアクセス ステータスを監視す...
この記事では、例を使用して、MySQL 共同インデックスの機能と使用方法を説明します。ご参考までに、...
目次グローバル変数 globalDataページプライベート変数データストレージ非同期ストレージ(デバ...
この記事の例では、スターフラッシュ効果を実現するためのjsの具体的なコードを参考までに共有しています...
ステップ1: ローカルイーサネットプロパティをチェックして、VMwareブリッジプロトコルがインスト...
目次Vuex は単一の状態ツリーを使用するため、すべてのアプリケーション状態が比較的大きなオブジェク...
この記事の例では、コンピュータカメラを呼び出して写真機能を実現するためのvueの具体的なコードを参考...
言語では、DSL を実装するためにマクロがよく使用されます。マクロを使用すると、開発者は JSX 構...