ホームページ  >  記事  >  運用・保守  >  docker 内のイメージは自動的に更新されますか?

docker 内のイメージは自動的に更新されますか?

WBOY
WBOYオリジナル
2022-06-22 16:23:495926ブラウズ

Docker 内のイメージは自動的に更新されます。Watchtower ツールを使用して、イメージを自動的に更新できます。Watchtower は、実行中のコンテナー イメージが更新されたかどうかを監視できるツールです。イメージとリモート イメージを使用すると、現在のコンテナの実行パラメータを使用して新しいイメージで新しいコンテナを自動的に再作成し、古いコンテナを削除できます。

docker 内のイメージは自動的に更新されますか?

このチュートリアルの動作環境: linux7.3 システム、docker バージョン 19.03、Dell G3 コンピューター。

Docker イメージの自動更新

watchtower は、実行中のコンテナイメージが更新されたかどうかを監視できるツールで、ローカルイメージとリモートイメージに差異がある場合、現在のコンテナイメージが更新されます。パラメーターを実行して、新しいイメージを使用して新しいコンテナーを再作成し、古いコンテナーを削除します。

Docker を使用する場合、一部のイメージを頻繁に更新する必要がある場合があります。通常、コンテナーを手動で更新するのは面倒で、次の 4 つの手順が必要です:

1. コンテナーを停止します docker stop

2. コンテナーを削除 docker rm

3. イメージの更新ステータスを確認し、イメージを更新します docker pull

4. コンテナーを再起動しますdocker run ……

コンテナの数は少ない方が良いため、更新が必要なコンテナの数が多い場合、膨大な作業負荷が発生します。次に、コンテナを自動的に更新する方法を紹介します。この方法は、Synology の Docker にも適用できます。

Watchtower は、実行中のコンテナーを監視し、それらのコンテナーが最初に起動されたときのイメージを更新する必要があるかどうかを監視します。 Watchtower はイメージが変更されたことを検出すると、新しいイメージを使用し、同じパラメータを使用して対応するコンテナを自動的に再起動します。同時に、Watchtower 自体も Docker イメージとしてパッケージ化されており、Watchtower を使用して 1 行のコマンドですべてのコンテナを監視でき、Watchtower 自体を含むすべてのコンテナが自動的に更新されます。

クイック スタート

Watchtower 自体は Docker イメージとしてパッケージ化されているため、他のコンテナーと同じように実行できます。他の Docker 環境では、Docker コマンドを使用してダウンロードしますイメージを直接参照します。 :

docker pull containrrr/watchtower

Synology の Docker は、レジストリから直接検索してダウンロードできます:

docker 内のイメージは自動的に更新されますか?

その他の Docker 実行コマンド

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

上記のコードを使用すると、Watchtower コンテナーをバックグラウンドで起動し、現在のすべてのイメージの更新を監視できます。 Watchtower は実行中のコンテナーを監視するために Docker API と対話する必要があるため、これを使用して /var/run/docker.sock をコンテナーにマップする場合は -v パラメーターを追加する必要があります。

Synology のスケジュールされたタスクを使用して、Synology で Watchtower を実行します

docker 内のイメージは自動的に更新されますか?

Synology タスク プランを開き、新しいスケジュールされたタスクのユーザー定義スクリプトを作成し、次のスクリプトを入力して 1 回実行し、すべてのコンテナを更新し、古いコンテナをクリアします。

docker run -d --name watchtower -v  /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --run-once

スケジュールされたタスクで自動的に実行するように設定することも、必要に応じて手動で実行することもできます。その後、Watchtower 自体を含むすべてのコンテナが自動的に更新されます。

オプション パラメータ

デフォルトでは、Watchtower は、それが指す Docker デーモン内で実行されているすべてのコンテナを監視します。ただし、Watchtower の起動時に特定のコンテナーの名前を指定して、それらの特定のコンテナーのみを監視することもできます。例:

docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --run-once nginx redis

現時点では、Watchtower は「nginx」と「redis」という名前のコンテナーのみを監視し、他の実行中のコンテナーはすべて無視されます。 Watchtower をバックグラウンドで実行したくない場合は、 --run-once パラメーターを追加すると、Watchtower コンテナーがフォアグラウンドで実行されます。

--cleanup パラメータを使用して、更新後に古いイメージを自動的に削除します。

--monitor-only を使用すると、新しいイメージの監視と通知の送信のみが行われ、コンテナは更新されません

--interval を使用して、更新検出間隔を秒単位で設定します。たとえば、1 時間ごとに更新を確認するには、--interval 3600

です。より具体的な使用方法については、Watchtower の公式ドキュメントを参照してください。ここでは、よく使用される 2 つの方法のみを示します。 Synology は自動的にスケジュールされたタスクを使用できるため、--interval パラメーターを使用する必要はありません。

推奨される学習: 「docker ビデオ チュートリアル

以上がdocker 内のイメージは自動的に更新されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。