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

推薦する

シェルスクリプトはNginxのaccess.logのPVを定期的にカウントし、APIに送信してデータベースに保存します。

1. PVとIPの統計一日のPV(ページビュー)をカウントする cat access.log | ...

mysql 5.7.11 winx64 初期パスワード変更

公式サイトからMySQL-5.7.11-winx64の圧縮版をダウンロード。インストール後、パスワー...

JS で美しい条件式を書く方法についての簡単な説明

目次複数の条件文複数属性オブジェクトスイッチステートメントを置き換えるデフォルトパラメータとデストラ...

Navicat for MySQL チュートリアル

まず、Navicat for MySQL をダウンロードしてインストールする必要があります。正規版の...

CSS3 でのシンプルな LED デジタル時計の実装方法

これは多くの人がやったことがあるはずです。ただうずうずして書きたかったので、時間をかけていじってダー...

HTMLファイルで外部CSSファイルを導入する場合のパスの書き方について簡単にまとめます

1. 外部CSSファイルの基本スタイルをインポートする<link> タグを使用して外部ス...

favico.ico---ウェブサイトicoアイコン設定手順

1. 正常に生成されたアイコン ファイルをダウンロードし、名前を favico.ico に変更して、...

CentOS7.6にMYSQL8.0をインストールする詳細な手順

1. 一般的に、CentOS では mariadb がデフォルトでインストールされているため、まず ...

MySQL 5.5 で範囲パーティションを追加および削除する例

導入RANGE パーティション分割は、指定された連続した間隔範囲に基づいています。RANGE の初期...

MySQLの7種類のログの概要

MySQL には次のログ ファイルがあります。 1: 再実行ログ2: ロールバックログ(元に戻すログ...

MySQL で重複レコードを見つけて削除する方法

みなさんこんにちは。私は技術の話ばかりして髪を切らない先生のトニーです。何らかの歴史的な理由や誤操作...

小さな画像をクリックしたときに更新せずに大きな画像コードが表示されるようにLightboxを実現するためにCSSを使用する

小さな画像をクリックしたときに更新せずに大きな画像コードが表示されるようにLightboxを実現する...

フロントエンドのパフォーマンス最適化を学ぶ準備として、HTMLページのレンダリングプロセスを理解する

現在、フロントエンドのパフォーマンス最適化について学んでいます。適切な解決策を見つけ、パフォーマンス...

HTML チュートリアル、HTML デフォルト スタイル

html 、アドレス、引用、本文、 dd 、 div 、 dl 、 dt 、フィールドセット、フォ...

MySQLの左結合と内部結合について簡単に説明します

序文最近、X 省のコールド チェーン トレーサビリティ システムの開発で忙しくしています。毎日午後 ...