GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

実行中のDockerコンテナを自動的に更新する方法

望楼 は無料のオープンソースアプリケーションであり、実行中のDockerコンテナを監視し、ベースイメージに変更が見つかったときに自動的に更新します。 watchtowerは、実行中のコンテナーを更新する必要があることを検出すると、SIGTERMシグナルを送信することにより、実行中のコンテナーを正常に停止します。次に、新しいイメージをダウンロードし、最後に、最初にデプロイされたときに使用されたのと同じオプションでコンテナを再起動します。すべてがバックグラウンドで自動的に実行されるため、ユーザーの介入は必要ありません。このガイドでは、UnixライクなオペレーティングシステムでWatchtowerを使用して実行中のDockerコンテナを自動的に更新する方法を説明します。

このガイドをCentOS7ミニマムエディションでテストしましたが、手順はすべてのLinuxディストリビューションで同じです。

Watchtower-実行中のDockerコンテナを自動的に更新

望楼の設置

Watchtower自体はDockerイメージとして利用できます。したがって、それを展開することは大したことではありません。 LinuxボックスにDockerをインストールし、Watchtowerの実行を開始して、Dockerコンテナをすぐに監視します。

以下のガイドを参照して、YUMベースおよびDEBベースのシステムにDockerをインストールしてください。

  • CentOSにDockerをインストールする方法
  • UbuntuにDockerをインストールする方法

Dockerをインストールしたら、次のコマンドを root として使用して、Watchtowerコンテナーをデプロイできます。 ユーザー:

#docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock v2tec / watchtower 

このコマンドは、望楼の最新の画像をプルし、望楼コンテナを起動します。

出力例:

<前>の画像が見つかりません 'v2tec /望楼を:最新の' locallylatest:v2tec / watchtowera3ed95caeb02から引っ張る:完全802d894958a2プル:プル完全9916c27d2815:lateste85c923f2e4dd22a62c12b038ea9694ba9245dcd835f210e1a1f902ee311e004 > 推奨ダウンロード -無料の電子書籍:「DockerContainerizationCookbook」

使用法

これで、Watchtowerは、システム上で実行中の他のコンテナーで開始されました。次のコマンドを使用して、実行中のDockerコンテナのリストを表示できます:

#docker ps 

出力例:

 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESe85c923f2e4d v2tec / watchtower "/ watchtower"3分前Up3分watchtower58543e6ed18acentos:latest "/ bin /bash"5分前Up5分ostechnix

上記の出力でわかるように、Watchtowerコンテナは、「ostechnix」という名前の別のコンテナと一緒に実行されています。今後、Watchtowerはこのコンテナの監視を数分ごとに開始します。このコンテナのベースイメージに変更が見つかった場合は、「ostechnix」コンテナを正常にシャットダウンし、最初に起動したときに使用したのと同じオプションを使用して新しいイメージで再起動します。同様に、実行中のすべてのコンテナの更新を数分ごとに自動的にチェックし、それらを自動的に更新します。

デフォルトでは、Watchtowerは、それがポイントされているDockerデーモン内で実行されているすべてのDockerコンテナを監視します。ただし、以下に示すようにコンテナの名前を指定することで、ウォッチタワーが特定のDockerコンテナを監視するように制限できます。

#docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock v2tec / watchtower ostechnix 

上記の例では、watchtowerは「ostechnix」という名前のコンテナーのみを監視して更新を確認し、実行中の他のコンテナーは無視されます。引数を指定しない場合、watchtowerは実行中のすべてのDockerコンテナを通常どおり監視します。

おすすめの記事:

  • Docker入門
  • ctop –Linuxコンテナ用のコマンドライン監視ツール
  • Dockly-ターミナルからDockerコンテナを管理する
  • Portainer –Dockerを管理する最も簡単な方法
  • PiCluster-シンプルなWebベースのDocker管理アプリケーション

望楼は、複数のリンクされたコンテナを監視することになると十分に賢いです。 「Nginx」コンテナと「Nginx」コンテナにリンクされた「wordpress」コンテナという名前の2つのコンテナを実行しているとします。 Watchtowerが「Nginx」コンテナの更新を検出すると、最初にリンクされたコンテナ、つまり「wordpress」をシャットダウンしてから、Nginxコンテナを停止します。次に、両方のコンテナを正しい順序で再起動し、アプリケーションが正しく起動するようにします。この場合、リンクが引き続き機能することを確認するために、最初にNginxコンテナが開始され、次にWordPressコンテナが開始されます。詳細については、このガイドの最後にあるWatchtowerGitHubページのリンクを参照してください。

そして、それがすべてです。私たちのガイドが役に立ったら、あなたの社会的、専門的なネットワークでそれらを共有し、OSTechNixをサポートしてください。来るより良いもの。しばらくお待ちください!

乾杯!


Docker
  1. DockerComposeの使用方法

  2. Dockerコンテナを接続する方法

  3. 環境変数をDockerコンテナに渡す方法

  1. デーモンが停止したときにDockerコンテナを実行し続ける方法

  2. 実行中のDockerコンテナでコマンドを実行する方法

  3. Dockerコンテナを一覧表示する方法

  1. Dockerコンテナを管理する方法は?ベストプラクティス

  2. 未使用のDockerリソースを整理する方法

  3. すべての Docker コンテナーを削除する方法