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

推薦する

CentOS7 デプロイメント Flask (Apache、mod_wsgi、Python36、venv)

1. Apacheをインストールする # yum インストール -y httpd httpd-de...

Echarts バー水平棒グラフのサンプルコード

目次横棒グラフデータとスタイルを動的に更新するeChartsの幅と高さの適応の問題を解決する縦棒グラ...

Jenkins でユーザー ロールの権限を設定する方法

Jenkinsのユーザーロール権限の設定には、ロール戦略プラグインのインストールが必要です。 1.ロ...

JS で CSS 変数を使用する方法

JS で CSS 変数を使用する方法:export キーワードを使用して、js オブジェクトを le...

MySQL の複数テーブル関連付け 1 対多クエリを使用して最新のデータを取得する方法の例

この記事では、MySQL で複数のテーブルを使用して 1 対多のクエリを使用して最新のデータを取得す...

SSHのssh-keygenコマンドの基本的な使い方の詳細な説明

SSH 公開鍵認証は、SSH 認証方式の 1 つです。 SSH パスワードフリーのログインは公開鍵認...

MySQLインデックスマージの使い方

インデックスのマージは、MySQL が最下層で提供するインテリジェントなアルゴリズムです。インデック...

JavaScript は最大値と最小値のアルゴリズムを通じて AI 三目並べゲームを実装します

では、早速スクリーンショットを実行してみましょう。黒い駒はプレイヤーの位置、赤い駒はコンピュータの位...

ウェブ開発者はIE7とIE8の共存を懸念している

今日、IE8 をインストールしました。ダウンロードするために Microsoft の Web サイト...

MySQL で数千万のテストデータを含むテストデータベースを作成する方法

場合によっては、MySQL が公式に提供しているテスト ライブラリに基づいてテスト データを作成し、...

ウェブデザイン必携ハンドブック 216 ウェブセーフカラー

Web ページ上の色の表現は、さまざまな要因によって影響を受けます。Web ページで非常に美しい配色...

Linuxプロセスネットワークトラフィック統計の実装プロセス

序文Linux には、ネットワーク接続、プロセス、およびその他の情報をリアルタイムで収集するための対...

vue N​​progress のプログレスバー機能を実装する際の一般的な問題

NProgress は、ページがジャンプしたときにブラウザの上部に表示される進行状況バーです。公式ウ...

HTML スペースコードの簡単な分析

HTML についてどれくらい知っていますか? 現在、基本的な HTML コードを学習している場合は、...

Vueは下部のポップアップウィンドウで複数選択を実装します

この記事の例では、下部のポップアップウィンドウで複数選択を実装するためのVueの具体的なコードを共有...