Nexus を使用して Docker リポジトリを作成する方法

Nexus を使用して Docker リポジトリを作成する方法

公式の Docker レジストリを使用して作成されたウェアハウスでは、イメージを削除してもデフォルトではスペースが再利用されず、スペースが占有されてしまうなどの問題が生じます。一般的なアプローチは、Nexus を使用して企業のツールキットを管理することです。

Nexus は Docker リポジトリだけでなく、NPM、Maven などの他のタイプのリポジトリも作成できます。

Nexusコンテナを起動する

$ docker run -d --name nexus3 --restart=always \
  -p 8081:8081 \
  -p 8082:8082 \
  --mount src=nexus-data,target=/nexus-data \
  ソナタイプ/ネクサス3
イメージ 'sonatype/nexus3:latest' がローカルに見つかりません
最新: sonatype/nexus3 から取得
c65691897a4d: プル完了
641d7cc5cbc4: プル完了
c508b13320cd: プル完了
79e3bf9d3132: プル完了
ダイジェスト: sha256:2c33632ccd8f8c5f9023a3d7f5f541e271833e402219f8c5a83a29d1721457ca
ステータス: sonatype/nexus3:latest の新しいイメージをダウンロードしました
f637e039214978f8aac41e621e51588bd8cd8438055498c4060fbaf87799e64f

このうち、8081 は Nexus のアクセス ポート、8082 は倉庫のポートです。インターネット上のほとんどの記事ではポート 8082 のマッピングが追加されていないため、テスト中に長い間行き詰まってしまいました。

1~2 分待ってから、ブラウザで domain:8081 を開きます。

右上隅の [サインイン] をクリックしてログインします。初期アカウントは admin です。パスワードは、exec コマンドを使用してコンテナーに入力できます。プロンプトのパスに従って初期パスワードを表示します。

コンテナに入ると初期パスワードが表示されます

$ docker exec -it f637 /bin/bash
bash-4.4$ vi /nexus-data/admin.password

ログイン後、今後使用するパスワードの変更を求められます。

倉庫を作成する

ナビゲーションの歯車ボタンをクリックして設定ページに入り、リポジトリ > リポジトリに移動し、リポジトリの作成をクリックして、docker (ホスト) を選択します。

docker(hosted)はローカルウェアハウス、docker(proxy)はプロキシウェアハウス、docker(group)は集約ウェアハウスです。この記事ではローカルウェアハウスのみ紹介します。興味があれば、他の2つのウェアハウスの使い方もインターネットで検索できます。

上の画像の赤いボックスに記入するだけです。名前はウェアハウス名、HTTP 入力ボックスはポート番号 8082 です。書き込んだら、ページの一番下までスクロールし、[リポジトリの作成] をクリックしてウェアハウスを作成します。

アクセス権限の追加

メニュー「セキュリティ」->「レルム」で、「Docker Bearer Token Realm」を右のボックスに移動して保存します。

ユーザー ルールを追加します。メニュー セキュリティ -> ロール -> ロールの作成 特権オプションで docker を検索し、対応するルールを右側のボックスに移動して保存します。

ユーザーの追加: メニューの「セキュリティ」->「ユーザー」->「ローカル ユーザーの作成」。「ロール」オプションで、作成したルールを選択し、適切なウィンドウに移動して保存します。

倉庫にログイン

作成されたウェアハウスには HTTP 経由でアクセスされるため、ログインする前に Docker 構成でデーモンを変更する必要があります。

{ "安全でないレジストリ": ["ドメイン:8082"] }

$ docker ログイン ドメイン:8082
ユーザー名: yourName
パスワード:
ログインに成功しました

アップロード倉庫、ダウンロード倉庫、検索倉庫の内容は前回の記事と同じなので、ここでは詳細には触れません。

注意すべき点の 1 つは、Nexus を起動するときに、ウェアハウス ポートをホスト マシンにマップする必要があることです。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • イメージのアップロードとダウンロードに docker をプロキシするためのプライベート ライブラリとして nexus を使用する
  • Docker を使用して Nexus プライベート ウェアハウスを構築し、Maven プライベート サービスを実装する

<<:  jsとcssのブロッキング問題の詳細な分析

>>:  MySQL 5.7.17 winx64 解凍版のインストールと設定方法のグラフィックチュートリアル

推薦する

ダイナミッククロックを実現するJS+CSS

この記事の例では、動的な時計を実装するためのJS + CSSの具体的なコードを参考までに共有していま...

HTML タグのメタ概要、HTML5 のヘッド メタ属性の概要

序文metaはhtml言語のhead領域にある補助タグです。おそらく、これらのコードは不要だと思うで...

Serv-U FTPとADの完璧な統合ソリューションの詳細な説明

会社が現在使用しているソリューションを確認するためにバックエンドにログインしました。使用される FT...

フロントエンドAIカットのコツ(体験談)

AI 画像の切り取りは PS と連携する必要があります。まず、スライスするレイヤーを選択し、それを...

MySQLでホワイトリストアクセスを設定する方法

MySQLでホワイトリストアクセスを設定する手順1. ログイン mysql -uroot -pmys...

Docker でコンテナのポート マッピングを動的に変更する方法

前書き: Docker のポート マッピングは、多くの場合、Docker Run コマンド中に -p...

HTML、CSS、JSコメントの標準的な使用法の概要

必要なコメントを追加することは、責任感と道徳心のあるフロントエンド開発者が持つべき良い習慣であり、コ...

CentOS サーバーの時間を北京時間に変更する方法

1. VPSとCentOSシステムを購入しましたが、サーバーの時間が北京時間と一致せず、時差があるこ...

ウェブサイトのAboutページの紹介コンテンツの書き方

公式、電子商取引、ソーシャル ネットワーキング、個人のいずれの Web サイトでも、訪問者に貴重な時...

Vueアイコンセレクターのサンプルコード

出典: http://www.ruoyi.vip/ 'vue' から Vue をイン...

VueとReactの詳細

目次1. パノラマII. 背景1. 反応: プロフェッショナル2. ビュー: 凡例3. 技術的な思考...

Nginx Rewrite の使用シナリオとコード例の詳細な説明

Nginx Rewriteの使用シナリオ1. URL アドレスジャンプ。たとえば、ユーザーが pm....

sqlite3 から mysql に移行するときに起こりうる問題のコレクション

簡単な説明適切な読者: モバイル開発sqlite3 データを mysql に移行する場合、多くの構文...

MySQL 権限とデータベース設計のケーススタディ

権限とデータベース設計ユーザー管理SQLyogを使用してユーザーを作成し、権限を付与する基本コマンド...

フロントエンドページのスライド検証を実装するための JavaScript + HTML (2)

この記事の例では、クールなフロントエンドページのスライド検証の具体的なコードを参考までに共有していま...