Docker プライベート サーバー イメージを定期的にクリーンアップする方法

Docker プライベート サーバー イメージを定期的にクリーンアップする方法

CI を利用してリリース用の Docker イメージをビルドすることで、全員のバージョンリリース効率が大幅に向上し、イメージ リポジトリが急速に拡大しました。ディスクの負担を軽減するには、いくつかのクリーンアップ戦略を設定する必要があります。

異なる Docker イメージのクリーンアップ戦略は異なる必要があります。たとえば、最新の 5 つのバージョンのイメージがデフォルトで保持され、すべてのツール イメージが保持され、ビジネス イメージは 1 か月間保持されます。

5 枚の画像を保存する簡単な方法は次のとおりです。

https://github.com/mlabouardy/nexus-cli をダウンロードし、cli を使用して削除を実行します。

ダウンロード

https://s3.eu-west-2.amazonaws.com/nexus-cli/1.0.0-beta/linux/nexus-cli を実行します。
chmod +x nexus-cli

構成

./nexus-cli 設定

最後に、このディレクトリに.credentialsファイルが作成されます。

# Nexus 認証情報
nexus_host = "http://nexus.demo.com"
nexus_username = "管理者"
nexus_password = "管理者パスワード"
nexus_repository = "あなたのDockerプライベートリポジトリ"

ホストに記入されているnexusのホストとポートはdockerに対応するリポジトリのポートではないことに注意してください。

nexus_repository docker に対応するリポジトリです。

ミラーを見る

./nexus-cli イメージ ls

最後の5つを残しておく

./nexus-cli イメージ削除 -name mlabouardy/nginx -keep 5

包括的なスクリプト

クリーン

画像ファイル=image.txt
CLI_HOME=/data/nexus3
バージョン番号を5に保つ

$CLI_HOME/nexus-cli イメージ ls > $image_file
sed -i '$d' $イメージファイル


cat $image_file | 行を読み取りながら
する
 echo "$line をクリーンアップします"
 $CLI_HOME/nexus-cli イメージ削除 -name $line -keep $KEEP_VERSION_NUM
終わり

スケジュールされたタスク

crontab -e

0 2 * * * sh /data/nexus3/clean.sh

ネクサスタスクを作成する

考える

前述したように、画像ごとに異なる保持戦略を選択する必要があります。もちろん、5 つだけ残すことはできません。たとえば、ツール イメージは非常に熱心に開発されているかもしれませんが、アプリケーションはまだ古いバージョンである可能性があります。ビジネスイメージについては、1 日に n 回のリリースが行われ、n 枚の画像が追加されました。これらのバージョンを維持するにはどうすればよいでしょうか?

大まかなアイデアとしては、tools-、biz- などのプレフィックスを追加するなどして、イメージ名を標準化することです。

異なるリポジトリに分割されます。 ツールには別のリポジトリを使用し、ビジネスごとに独自のリポジトリを使用します。リポジトリごとに異なる保持ポリシーが適用されます。

要約する

上記は、編集者が紹介したdockerプライベートサーバーイメージを定期的にクリーンアップする方法です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • Docker ディスク領域クリーニングのソリューション
  • Docker クリーニングの一般的な方法と問題点
  • Docker クリーンアップ環境操作
  • Docker が占有するディスク領域をクリーンアップする方法
  • Docker によって生成されたジャンクファイルをクリーンアップする方法
  • Dockerリソースを素早くクリーンアップする方法
  • Docker クリーンアップ コマンド コレクション
  • Dockerデータを完全にクリーンアップする方法

<<:  MySQL 8.0.12 winx64 詳細なインストールチュートリアル

>>:  ファイルの種類を検出するJavaScriptメソッド

推薦する

Centos6.9 インストール Mysql5.7.18 ステップ記録

インストール手順 rpm -ivh mysql-コミュニティ-共通-5.7.18-1.el7.x86...

CSS3 を使用して中心点の周りに要素を配置する方法の例

この記事では、CSS3 を使用して中心点を中心に要素をレイアウトする方法の例を紹介します。詳細は次の...

Zabbix による SQL Server の監視プロセスの詳細な説明

Zabbix による SQL Server の監視を見てみましょう。まずfreetdsをダウンロード...

MySQL アップグレードのベストプラクティス

MySQL 5.7 には、オンライン DDL、マルチソース レプリケーション、拡張された半同期、テー...

HTML+CSS+JavaScript でシンプルな三目並べゲームを作成する

目次HTMLの実装CSSを追加Javascript部分の実装デモアドレス HTMLの実装まず、hea...

MySQL ストレステストツールの使い方

1. MySQL 独自のストレステストツール - Mysqlslap mysqlslap は、mys...

Vue3のレスポンシブ原則の詳細な説明

目次Vue2 レスポンシブ原則のレビューVue3 レスポンシブ原則の分析ネストされたオブジェクトの応...

Web ページのソース ファイルを表示できない場合はどうすればよいですか?

Q: Outlook または IE のどちらを使用している場合でも、マウスを右クリックすると、ポッ...

Vue は Tencent TIM インスタント メッセージングを統合します

この記事では主に、Tencent TIM インスタント メッセージングを Vue と統合する方法を紹...

シンプルなリスト機能を実装するミニプログラム

この記事の例では、参考のために簡単なリスト機能を実装するアプレットの具体的なコードを共有しています。...

XshellがvirtualBox仮想マシンに接続できない問題の解決策

まず、VirtualBox仮想マシンのネットワーク設定モードについて説明します。NAT+ホストオンリ...

Docker Swarm サービス オーケストレーション コマンドの詳細な説明

1. はじめにDocker には、タスクを構成する複数の Docker コンテナをオーケストレーショ...

Vue スクロールダウンしてさらにデータを読み込む スクロールケースの詳細な説明

vue-無限スクロールインストール npm インストール vue-infinite-scroll -...

CSSはletter-spacingプロパティを通じて単語間の間隔を制御します。

letter-spacing プロパティ: 文字間のスペース (文字間隔) を増減します。このプロ...

JavaScript キャンバス テキスト クロック

この記事では、テキストクロックを実装するためのキャンバスの具体的なコードを例として紹介します。具体的...