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

推薦する

CSS3 ベジェ曲線の例: リンクホバーアニメーション効果の作成

CSS3 アニメーション トランジションを使用して、リンクの上にマウスを移動すると小さなポップアップ...

WindowsX Hyper-V ベースの CentOS システムをインストールする

現在、Linux を使用するほとんどの人は、クラウド サーバーを使用するか、Windows 上に仮想...

MySQL グリーンバージョン設定コードと 1067 エラーの詳細

MySQL グリーンバージョン設定コードと 1067 エラーMySQL エンコーディングを表示 &#...

Vueはシンプルなデータ双方向バインディングを実装します

この記事では、Vueの具体的なコード例を参考までに紹介します。具体的な内容は以下のとおりです。初心者...

Vue.jsは背景テーブルコンポーネントのカプセル化を管理します

目次問題分析なぜカプセル化なのかパッケージの内容は何ですか?テーブルコンポーネントをカプセル化するデ...

ReactプロジェクトにSCSSを導入する方法

まず依存関係をダウンロードします yarn sass-loader ノード sass を追加します次...

OR キーワードを使用した MySql 複数条件クエリ ステートメント

前の記事では、And キーワードを使用した MySql の複数条件クエリ ステートメントを紹介しまし...

VMware 仮想マシンのインストール Apple Mac OS の超詳細なチュートリアル

目次要約する仕事の都合で Apple の Mac OS に対応するソフトウェアをインストールする必要...

CocosCreatorの共通知識ポイントを整理する

目次1. シーンの読み込み2. ノードを見つける1. ノード検索2. その他のノード操作3. 再生ア...

MySQLのorder byとlimitを混在させる際の落とし穴の詳細な説明

MySQL では、ソートには order by を、ページングには limit をよく使用します。最...

MySQL シリーズ: MySQL リレーショナル データベースの基本概念

目次1. 基本概念2. データベース管理技術の開発3. リレーショナルデータベース(RDBMS)の概...

MySQL 5.7.18のインストール方法とMySQLサービスの起動手順の詳細な説明

MySQL は非常に強力なリレーショナル データベースです。しかし、初心者の中には、インストールや設...

Vue カプセル化コンポーネント アップロード画像コンポーネント

この記事の例では、参考のためにvueアップロード画像コンポーネントの具体的なコードを共有しています。...

Ubuntu20.04 VNCのインストールと設定の実装

VNC はリモート デスクトップ プロトコルです。 VNC を使用して Ubuntu 20.04 を...

証明書を使用してリモート Docker サーバーに接続する方法

目次1. スクリプトを使用してDockerのTLSを暗号化する2. Dockerの設定を変更してリモ...