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

推薦する

HTML のキャンバスに基づくスクリーンショットのデモ

冒頭に書いた以前、Renren で JS ベースのスクリーンショット ソリューションについて説明した...

XHTML 入門チュートリアル: XHTML タグ

XHTML タグの紹介<br />おそらく、前のセクションで、XHTML ファイルと通常...

yum から docker インストール パッケージをダウンロードし、オフライン マシンにインストールする例の詳細なコード

1. ネットワークマシンでは、デフォルトのcentosyumソースを使用します [root@kole...

Vue3 コンポジション API の紹介

目次概要例なぜそれが必要なのでしょうか?設定参照、反応的計算して見るライフサイクルVue3.0 は ...

Nginx ドメイン転送の使用シナリオ コード例

シナリオ 1: サーバーの制限により、外部に開かれているポートは 1 つだけですが、別の外部ネットワ...

MySQL 4.1/5.0/5.1/5.5/5.6の主な違い

バージョン間でのコマンドの違い: innodb ステータスを表示\G mysql-5.1 エンジン ...

初心者向け入門講座⑧:記事サイトを簡単に作る

前回の投稿では、Web ページの作成方法について説明しました。Web サイトは多くの Web ページ...

HTMLメタの大きな役割

メタ属性には、name と http-equiv の 2 つがあります。 name 属性は主に、We...

CentOS6.5 でファイル共有サービス Samba を構築するチュートリアル

Samba サービス:このコンテンツはサンバサービス学習者の参考用ですケースの説明:企業の管理者は、...

システムメンテナンスページにリダイレクトするように nginx を設定する

先週末、兄弟プロジェクトはより良いサービスを提供するためにサーバーを拡張する準備をしていました。兄弟...

CSSで制御可能な点線を実装する方法

序文CSS を使用して点線を生成するのは、フロントエンド開発者にとっては簡単です。一般的に、これを実...

MySQL カウントを向上させる方法のまとめ

多くのプログラマーは MySQL に精通していると思います。多くの人が count の使い方と、最適...

Tcl言語に基づくシンプルなネットワーク環境を構成するプロセスの分析

1. Tclスクリプトファイルcircle.tclコードコメント #シミュレーションに必要なプロパテ...

div の高さをブラウザの高さに合わせて調整する方法

この古くからある疑問は、数え切れないほどのフロントエンド開発者やバックエンドプログラマーを悩ませてき...

Ubuntu 上の MySQL における中国語文字化け問題の解決方法

問題を見つける最近 Django を学習しているのですが、MySQL データと組み合わせてデータを挿...