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メソッド

推薦する

mysqlパラメータsql_safe_updatesを使用して更新/削除範囲を制限する方法の詳細な説明

序文皆さんご存知のとおり、MySQL の運用・保守において、更新/削除条件が誤っているためにデータが...

JS オブジェクトのコピー (ディープ コピーとシャロー コピー)

目次1. 浅いコピー1. Object.assign(ターゲット、ソース、ソース...) 2. スプ...

MySQL マスタースレーブレプリケーションと読み取り書き込み分離の詳細な説明

記事マインドマップマスター/スレーブ レプリケーションと読み取り/書き込み分離を使用する理由は何です...

WeChat アプレット uniapp は左スワイプによる削除効果を実現します (完全なコード)

WeChatアプレットuniappは左スワイプで削除効果を実現成果を達成する1. スワイプしてリス...

Linux IO 多重化 epoll ネットワーク プログラミング

序文この章では、基本的な Linux 関数と epoll 呼び出しを使用して、Linux 上で実行で...

ウェブページの HTML コード: スクロールテキストの作成

このセクションでは、Web ページ内のテキストをスクロールしたり、スクロール プロパティを制御できる...

MySQLは重複しないデータ挿入を実装するためにUNIQUEを使用する

SQL UNIQUE制約UNIQUE 制約は、データベース テーブル内の各レコードを一意に識別します...

MySQL 8.0.18 のインストールと設定方法のグラフィック チュートリアル (Linux)

この記事では、Linux MySQL 8.0.18のインストールと設定のグラフィックチュートリアルを...

CSSスタイルで実現されるHTML背景色のグラデーション効果

エフェクトのスクリーンショット:実装コード:コードをコピーコードは次のとおりです。 <!DOC...

2048 ゲームを実装するためのネイティブ js

2048ミニゲーム、参考までに具体的な内容は以下のとおりですまず、2048ゲームは16のグリッドか...

WeChatアプレットの手動および自動追跡の実装の詳細説明(Taro)

どの企業もユーザーベースを拡大したいのであれば、ユーザーの操作データを収集・分析する必要があり、その...

CocosCreator で物理エンジン ジョイントを使用する方法

目次マウスジョイント マウスジョイント距離ジョイント距離ジョイントモータージョイント直動ジョイント変...

Windows で mysql-8.0.18-winx64 をインストールするチュートリアル (画像とテキスト付き)

1. インストールパッケージをダウンロードするインストール パッケージは次の場所にあります:参考:...

フロントエンド HTML+CSS+JS を使用してシンプルな TODOLIST 関数を開発する (メモ帳)

目次1. 簡単な紹介2. スクリーンショットを実行する3. コードの紹介4. まとめ1. 簡単な紹介...

Docker イメージ管理の一般的な操作コード例

ミラーリングも Docker のコアコンポーネントの 1 つです。ミラーリングはコンテナ操作の基盤で...