DUICUO

Nexus をコンテナ イメージ リポジトリとして構成する

[[395763]]

過去10年間、開発者はアプリケーションと基盤となるオペレーティングシステムのパッケージ化およびデプロイ方法の変革を目の当たりにしてきました。Dockerコンテナと、最も人気のあるオープンソースのコンテナオーケストレーションシステムであるKubernetes(K8)の採用増加は、ソフトウェアサプライチェーンを再構築しました。一方で、開発、テスト、運用チームは、コードとそのすべての依存関係をコンテナにパッケージ化することでメリットを得ています。一方で、新しいテクノロジーが登場するたびに、パッケージングおよび管理システムには新たな複雑さが生じています。

オープンソースとコンテナ化は効率的なバリューストリームを再設計し、様々なエコシステム向けに複数の種類のアプリケーションを構築できるようにしました。しかし、組織は複数の異なるパブリックソース(またはレジストリ)からコンテナ化されたアプリケーションをどのように保存、管理、展開するのでしょうか?

Docker、Helm、Kubernetes の簡素化されたコンテナ管理

Nexus Repositoryは、幅広いエンタープライズストレージ機能を基盤として構築されており、あらゆるDockerイメージとHelm Chartリポジトリに対応する堅牢なレジストリです。大規模なユーザーコミュニティに支えられたNexus Repositoryは、500万以上のインスタンスをデプロイ済みで、世界中で1,200以上の組織と600社以上の大規模エンタープライズ顧客をサポートしています。チームは、高性能で完全に無料のコンテナレジストリであるNexus Repository OSSを利用することも、エンタープライズレベルの拡張性と機能性が必要な場合はNexus Repository Proを選択することもできます。

Docker HubやHelmとは異なり、開発チームはNexusリポジトリをすべてのパブリックレジストリへの一元的なアクセスポイントとして使用することで、より効率的で安定したコンテナ管理ソリューションを提供しています。CI/CDビルドパイプライン全体への統合に加え、完全にサポートされたエンタープライズグレードのコンテナレジストリを使用することで、数多くのメリットが得られます。

複数のリポジトリタイプ

Nexus リポジトリは、プロキシ、ホスト、およびグループ リポジトリを通じて Docker イメージと Helm 3 リポジトリをサポートし、ユーザーが開発チーム全体で高度なコンテナー管理機能を利用できるようにします。

プロキシリポジトリ – Docker Hubやその他のDockerイメージのリモートレジストリにプロキシリポジトリを設定することで、冗長なダウンロードを削減し、開発者とCIサーバーのダウンロード速度を向上させます。イメージをローカルにキャッシュすることで、市場投入までの時間を短縮し、ローカルアクセス制御を確保します。

マネージドリポジトリ - Nexusリポジトリを使用すると、独自のコンテナイメージやサードパーティ製のイメージをプライベートDockerレジストリにアップロードできます。これらのレジストリのきめ細かな権限設定により、開発チームや組織のセキュリティが強化されます。

リポジトリグループ – 初期設定後、追加のクライアント設定なしで、グループ内のすべてのリポジトリからイメージをプルできます。グループリポジトリを使用すると、ツールから単一のURLを使用して、複数のプロキシリポジトリとホストリポジトリの集約されたコンテンツにアクセスできます。

Dockerイメージリポジトリを作成する

ホストされたリポジトリを作成し、HTTP アクセス モードに設定して、ポート 8090 を使用します。

Neuxs サービスを更新し、ポート 8090 を追加します。

  1. apiバージョン: v1
  2. 種類: サービス
  3. メタデータ:
  4. 名前: nexus3
  5. 名前空間: devops
  6. ラベル:
  7. k8sアプリ: nexus3
  8. 仕様:
  9. セレクタ:
  10. k8sアプリ: nexus3
  11. ポート:
  12. -名前: ウェブ
  13. ポート: 8081
  14. ターゲットポート: 8081
  15. -名前: web2
  16. ポート: 8083
  17. ターゲットポート: 8083
  18. -名前: docker
  19. ポート: 8090
  20. ターゲットポート: 8090

Neuxs Ingressを更新し、ドメインをregistry.idevops.siteに設定します。

  1. - ホスト: registry.idevops.site
  2. http:
  3. パス:
  4. - パス:​​ /
  5. バックエンド:
  6. サービス名: nexus3
  7. サービスポート: 8090

Nexus ポッドのログを確認すると、起動したことが分かります。

ミラーリポジトリにログインする

  1. HTTPS ではデフォルトでエラー メッセージが表示されます。
  2. [root@zeyang-nuc-service ~]# docker ログイン registry.idevops.site
  3. ユーザー名: admin
  4. パスワード:
  5. デーモンからのエラー応答: Get https://registry.idevops.site/v2/: dial tcp 192.168.1.230:443: connect : connection refused
  6.  
  7.  
  8. ## Docker 構成を更新する
  9. [root@zeyang-nuc-service ~]# vim /etc/docker/daemon.json
  10. {
  11. "exec-opts" :[ "native.cgroupdriver=systemd" ],
  12. "レジストリミラー" : [ "https://c9ojlmr5.mirror.aliyuncs.com" ],
  13. "安全でないレジストリ" : [ "192.168.1.200:8088" , "registry.idevops.site" ]
  14. }
  15.  
  16. [root@zeyang-nuc-service ~]# systemctl daemon-reload
  17. [root@zeyang-nuc-service ~]# systemctl dockerを再起動します
  18.  
  19.  
  20. ## 再度ログイン
  21. [root@zeyang-nuc-service ~]# docker ログイン registry.idevops.site
  22. ユーザー名: admin
  23. パスワード:
  24. 警告!パスワードは暗号化されずに/root/.docker/config.json保存されます
  25. この警告を削除するには、認証ヘルパーを設定してください。
  26. https://docs.docker.com/engine/reference/commandline/login/#credentials-store
  27.  
  28. ログインに成功しました

テストアップロード画像

  1. [root@zeyang-nuc-service ~]# docker タグ mysql:5.7 registry.idevops.site/library/mysql:5.7
  2. [root@zeyang-nuc-service ~]# docker push registry.idevops.site/library/mysql:5.7
  3. プッシュはリポジトリ[registry.idevops.site/library/mysql]参照します
  4. c187f0dccfe2: プッシュされました
  5. a45abaac81d1: プッシュ
  6. 71c5f5690aef: プッシュ
  7. 8df989cb6670: プッシュ
  8. f358b00d8ce7: プッシュされました
  9. ae39983d39c4: プッシュ
  10. b55e8d7c5659: プッシュ
  11. e8fd11b2289c: プッシュされました
  12. e9affce9cbe8: 押された
  13. 316393412e04: プッシュ
  14. d0f104dc0a1f: プッシュ
  15. 5.7: ダイジェスト: sha256:55638620c5a206833217dff4685e0715fb297a8458aa07c5fe5d8730cc6c872fサイズ: 2621

Nexusで確認してください。


Nexusはコンテナレジストリとして、コンテナストレージ管理とKubernetesデプロイメントのためのDockerおよびHelmレジストリを提供し、企業を支援します。DevOpsチームの規模が拡大するにつれ、アプリケーション内のオープンソースコンポーネントの品質に関する正確なレポートが不可欠になります。Nexus Lifecycleは、開発者やセキュリティ専門家に、セキュリティ脆弱性、ライセンスリスク、アーキテクチャ品質に関するオープンソースコンポーネントインテリジェンスを提供します。完全に統合されたユニバーサルなコンテナ管理レジストリと、最も正確なコンポーネントインテリジェンスを求める組織は、Nexusプラットフォームを活用することで、コンテナ化とオープンソースガバナンスに対する高まるニーズに対応できます。