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 解凍版のインストールと設定方法のグラフィックチュートリアル

ブログ    

推薦する

Linux のメモリ管理とアドレス指定の詳細な紹介

目次1. コンセプトメモリ管理モード住所種別分類例: 2. ページ管理x86 アーキテクチャ 32 ...

バックエンドから返される 100,000 個のデータをフロントエンドでより適切に表示するにはどうすればよいですか?

目次予備作業バックエンド構築フロントエンドページダイレクトレンダリングsetTimeout ページン...

MySQL 文字列連結関数 GROUP_CONCAT の詳細な説明

前回の記事では、クロステーブル更新について書きました。自分が書いた SQL を見たとき、自分がバカみ...

JavaScript でモバイル モーダル ボックスの効果を実現

この記事では、モバイルモーダルボックス効果を実現するためのJavaScriptの具体的なコードを参考...

Navicat 経由で MySQL にリモート接続する方法

Navicat を使用して IP 経由で直接接続すると、次のようなさまざまなエラーが報告されます: ...

Docker 構成 Alibaba Cloud イメージアクセラレーション プル実装

今日はdockerを使ってイメージをpullしたのですが、速度が悪くて見れず最後まで待ち続けました。...

ブラウザでTIF形式の画像を表示する方法

ブラウザはTIF形式の画像を表示しますコードをコピーコードは次のとおりです。 <html>...

CSS Houdini でダイナミックな波効果を実現

CSS Houdini は、CSS 分野における最もエキサイティングなイノベーションとして知られてい...

CSS3 アドバンス LESS で星空アニメーションを実装するサンプルコード

この記事では、星空アニメーションを実現するための高度な CSS3 LESS のサンプルコードを次のよ...

Vueはプラグインを使用して画像を比例してカットします

この記事では、プラグインを使用して画像の比例カットを実現するVueの具体的なコードを参考までに共有し...

組み込み移植 docker エラー問題 (概要)

長い移植と情報検索の期間を経て、組み込みDockerの問題を解決することができました。インターネット...

HTML チュートリアル: 定義リスト

<br />原文: http://andymao.com/andy/post/104.h...

Win10にnginxをインストールする方法

会社から、負荷を実装するためにnginxをベースにFordプロジェクトのWebServiceサーバー...

Vue プロジェクトに Electron を追加するための詳細なコード

1. package.jsonに追加する "メイン": "electr...

Nginx リクエスト制限の設定方法

Nginx は、多くの優れた機能を備えた強力で高性能な Web およびリバース プロキシ サーバーで...