Docker で Harbor パブリック リポジトリを構築する方法の例

Docker で Harbor パブリック リポジトリを構築する方法の例

前回のブログ投稿では、レジストリのプライベート ウェアハウスについて説明しました。今日は、Harbor ウェアハウスを設定してみましょう。Harbor は、パブリック ウェアハウスとしてもプライベート ウェアハウスとしても使用できます。今日は、Harbor がパブリック ウェアハウスとプライベート ウェアハウスを実装する方法を設定してみましょう。

レジストリパブリックリポジトリの詳細については、ブログ記事「Dockerプライベートリポジトリのデプロイレジストリ」をご覧ください。

レジストリとハーバーの違い

  • レジストリ: グラフィカル サポートが貧弱なプライベート イメージ リポジトリであり、小規模企業で使用されます。
  • Harbor: ビジュアル管理、プライベートおよびパブリック リポジトリ、イメージの管理と制御をサポートします。

Docker Harborの利点

  • VMWare のオープン ソース イメージ管理ソリューション。
  • グラフィカル管理をサポートします。
  • 簡単なアクセスと構成。
  • 画像アクセス制御を容易にします。
  • 責任戦略のミラーリングをサポートします。
  • ユーザー アクセス イメージの使用状況を監査し、カウントします。

Docker Harbor依存プログラム

  • パイソン;
  • Dockerをインストールします。
  • Docker の作成;

1. 港湾倉庫を建設する

ケースの説明:

CentOS7.4 が 2 台、サーバーが 1 台、クライアントが 1 台 (テスト用)。

両方のサーバーに Docker サービスをインストールする必要があります。私の Docker バージョンは 19.03.9 です。

Docker コンテナのインストールの詳細については、「Docker.v19.03.9 のインストール」を参照してください。

1. Docker Composeを構成する

Daoyunの公式サイトにアクセスし、Docker Composeのインストールを見つけて、Dockerサーバーにコマンドをコピーします:Daoyun

[root@centos01 ~]# curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose 
<!--Docker Compose をダウンロード-->
[root@centos01 ~]# chmod +x /usr/local/bin/docker-compose <!--Docker Compose は実行権限を追加します-->
[root@centos01 ~]# docker-compose -v <!--Docker Compose のバージョンを表示-->
docker-compose バージョン 1.25.5、ビルド 8a1c60f6

2. Docker Harborパブリックリポジトリを構成する

1) Github公式サイトを開く

Github 公式サイトを開いて harbor を検索し、goharbor/harbor をクリックしてから「releases」をクリックし、必要に応じて対応するバージョンをダウンロードしてサーバーにアップロードします (URL は次のとおりです: https://github.com/goharbor/harbor/releases。オンライン インストール パッケージをダウンロードすることもできますが、私は試していないので、自分で試してみてください)。

2) 港湾倉庫を構成する

harbor-online-installer-v1.9.1.tgz <!--Harbor 圧縮パッケージをアップロード-->
[root@centos01 ~]# tar zxvf harbor-online-installer-v1.9.1.tgz -C /usr/local/
  <!-- harbor を /usr/local/directory に解凍します -->
[root@centos01 ~]# cd /usr/local/harbor/ <!--Harbor ディレクトリに入ります-->
[root@centos01 harbor]# cp harbor.yml harbor.yml.bak <!--Harborのメイン設定ファイルをバックアップ-->
[root@centos01 harbor]# vim harbor.yml <!--Harborのメイン設定ファイルを変更する-->
 5 ホスト名: 192.168.100.10 <!--Docker サーバーの IP アドレスに変更-->
<!--hostname はドメイン名にすることもできますが、ドメイン名の場合はホスト ファイルの変更や DNS のインストールも必要です。ここでは IP アドレスを使用します -->
 8 http: <!--http プロトコルを使用する-->
10 ポート: 80 <!--80 ポート番号-->
27 harbor_admin_password: Harbor12345 <!-- デフォルトのパスワード、カスタマイズ可能 -->
[root@centos01 harbor]# ./install.sh <!--Harbor をインストール-->
[ステップ0]: インストール環境の確認中...

注: docker バージョン: 19.03.9

注: docker-compose バージョン: 1.25.5
……………… <!--一部省略-->
港ログを作成中...完了
registryctl を作成しています...完了しました
redis を作成しています...完了
港湾ポータルを作成中...完了
レジストリを作成しています...完了
harbor-db を作成しています...完了
ハーバーコアを作成中...完了
nginx を作成しています...完了
harbor-jobservice を作成しています...完了

✔ ----Harbor が正常にインストールされ、起動しました。----

これで、 http://www.benet.com にある管理ポータルにアクセスできるようになります。
詳細については、https://github.com/goharbor/harbor をご覧ください。
   <!-- インストールが完了すると上記のコードが表示され、成功したことを示します -->
[root@centos01 ~]# vim /usr/lib/systemd/system/docker.service <!--この設定ファイルを編集します-->
14 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.100.10:80
 <!--この行を見つけて「--insecure-registr」を追加し、Harbor の IP とリスニング ポートを指定します-->
[root@centos01 harbor]# systemctl daemon-reload <!--docker をデーモンとして実行します-->
[root@centos01 harbor]# systemctl restart docker <!--Docker サービスを再起動します-->
[root@centos01 harbor]# docker-compose stop <!--すべてのコンテナを停止-->
[root@centos01 harbor]# docker-compose start <!--すべてのコンテナを起動-->
[root@centos01 harbor]# netstat -anptu |grep 80 <!--ポート80をリッスン-->
tcp6 0 0 :::80 :::* 23473/docker-proxyを聴く

3) インストールが完了したら、ブラウザを使用してHarborリポジトリにアクセスします。

4) パブリックリポジトリを作成する

5) イメージのパブリックリポジトリが正常に作成されたことを確認する

6) Dockerサーバー上のHarborリポジトリにログインする

[root@centos01 ~]# docker login -uadmin -pHarbor12345 192.168.100.10:80 <!--Harbor 倉庫にログイン-->
警告! CLI 経由で --password を使用することは安全ではありません。--password-stdin を使用してください。
警告! パスワードは暗号化されずに /root/.docker/config.json に保存されます。
この警告を削除するには、資格情報ヘルパーを構成します。
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

ログイン成功 <!--このプロンプトはログインが成功したことを示します-->
[root@centos01 ~]# docker tag tomcat:latest 192.168.100.10:80/image/nginx:nginx 
   <!--画像タグを変更する-->
[root@centos01 ~]# docker push 192.168.100.10:80/image/nginx:nginx
  <!--Harbor リポジトリにイメージをアップロードします-->
[root@centos01 ~]# docker logout 192.168.100.10:80 <!--Docker サーバーが Harbor を終了します -->
192.168.100.10:80 のログイン資格情報を削除しています

7) Harborは画像が正常にアップロードされたかどうかを確認します

3. Dockerクライアントを構成する

<!--Docker クライアントが Docker サービスをインストールします -->

1) Docker Harbor サーバーをロードするように設定ファイルを変更します [root@centos02 ~]# vim /usr/lib/systemd/system/docker.service <!--この設定ファイルを編集します-->
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.100.10:80 
 <!--この行を見つけて「--insecure-registr」を追加し、Harbor の IP とリスニング ポートを指定します-->
[root@centos02 ~]# systemctl daemon-reload <!--デーモンプロセスがdockerを実行します-->
[root@centos02 ~]# systemctl restart docker <!--docker サービスを再起動します-->
[root@centos02 ~]# dockerログイン -uadmin -pHarbor12345 192.168.100.10:80 
   <!--docker クライアントが Harbor にログインします-->
警告! CLI 経由で --password を使用することは安全ではありません。--password-stdin を使用してください。
警告! パスワードは暗号化されずに /root/.docker/config.json に保存されます。
この警告を削除するには、資格情報ヘルパーを構成します。
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

ログインに成功しました <!--ログインに成功しました-->
[root@centos02 ~]# docker pull 192.168.100.10:80/image/nginx:nginx 
 <!--Docker クライアントは Harbor パブリック リポジトリのイメージをダウンロードします -->
[root@centos02 ~]# docker images <!--Docker クライアント イメージを表示-->
リポジトリ タグ イメージ ID 作成 サイズ
192.168.100.10:80/image/nginx nginx 1b6b1fe7261e 7日前 647MB

4. ハーバーのプライベート倉庫を作成する

1) プライベート倉庫を作成する

2) ユーザーを作成する

3) 新しく作成したプライベートユーザーをプライベートリポジトリに追加する

4) ハーバープライベート倉庫に画像をアップロードする

[root@centos01 ~]# docker tag tomcat:latest 192.168.100.10:80/private/tomcat:tomcat 
  <!--Docker サーバーがイメージ タグを変更します-->
[root@centos01 ~]# docker login -uprivate -pHarbor12345 192.168.100.10:80 
   <!--Harborプライベート倉庫にログイン-->
警告! CLI 経由で --password を使用することは安全ではありません。--password-stdin を使用してください。
警告! パスワードは暗号化されずに /root/.docker/config.json に保存されます。
この警告を削除するには、資格情報ヘルパーを構成します。
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

ログインに成功しました <!--ログインに成功しました-->
[root@centos01 ~]# docker push 192.168.100.10:80/private/tomcat:tomcat 
  <!-- イメージをプライベートリポジトリにアップロードします -->

5) Harborは画像が正常にアップロードされたかどうかを確認します

6) Dockerクライアントはプライベートリポジトリ内のイメージをダウンロードします

[root@centos02 ~]# docker login -uprivate -pHarbor12345 192.168.100.10:80 
  <!--Docker クライアントが Harbor プライベート ウェアハウスにログインします -->
警告! CLI 経由で --password を使用することは安全ではありません。--password-stdin を使用してください。
警告! パスワードは暗号化されずに /root/.docker/config.json に保存されます。
この警告を削除するには、資格情報ヘルパーを構成します。
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

ログインに成功しました <!--ログインに成功しました-->
[root@centos02 ~]# docker pull 192.168.100.10:80/private/tomcat:tomcat 
   <!--Docker クライアントは Harbor プライベート ウェアハウス内のイメージをダウンロードします -->
[root@centos02 ~]# docker images <!--Docker クライアントはイメージが正常にダウンロードされたかどうかを確認します-->
リポジトリ タグ イメージ ID 作成 サイズ
192.168.100.10:80/image/nginx nginx 1b6b1fe7261e 7日前 647MB
192.168.100.10:80/private/tomcat tomcat 1b6b1fe7261e 7日前 647MB

7) Harborはログ統計機能をサポートしています

Docker を使って Harbor パブリック リポジトリを構築する方法についての記事はこれで終わりです。Docker を使って Harbor パブリック リポジトリを構築する方法の詳細については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • HarborをベースにしたDockerプライベートイメージリポジトリの構築の詳細な説明
  • Docker はプライベート ウェアハウス (レジストリ、ハーバー) を構築します
  • DockerプライベートライブラリHarborのアーキテクチャとコンポーネントの説明
  • プライベートDockerリポジトリであるHarborをインストールするための詳細な手順
  • プライベートウェアハウス(レジストリとハーバー)を構築するためのDockerの実装
  • ドッカー専用倉庫港湾建設プロセス
  • Dockerがプライベート倉庫Harborを構築する手順
  • Docker Gitlab+Jenkins+Harborは永続的なプラットフォーム運用を構築します
  • Docker+K8S+GitLab/SVN+Jenkins+Harbor をベースにした継続的インテグレーション配信環境の構築に関する詳細なチュートリアル
  • Harborを使用してプライベートDockerリポジトリを構築する方法
  • Docker5フル機能の港湾倉庫構築プロセス
  • docker compose を使用してハーバープライベートウェアハウスをインストールする詳細なチュートリアル
  • Jenkins は Docker イメージを構築し、Harbor ウェアハウスにプッシュします
  • HarborをベースにしたDocker専用倉庫の構築方法
  • Dockerプライベート倉庫Harborの導入と展開方法

<<:  ノードイベントループにおけるイベント実行の順序

>>:  MySQLのルートパスワードをリセットする最も簡単な方法

推薦する

CentOs7 64 ビット MySQL 5.6.40 ソースコードのインストール プロセス

1. インストールプロセス中に問題が発生しないように、まず依存パッケージをインストールします。 [r...

フォーム入力ボックスに関するWebデザインのヒント

1. キャンセル ボタンが押されたときの破線ボックス<br /> 入力に属性値 hide...

MySQLの文字セット設定を5分で理解しましょう

目次1. コンテンツの概要2. 文字セットと文字順序の概念と関係3. MySQL でサポートされてい...

node.jsのインストールとHbuilderXの設定の詳細な説明

npm インストールチュートリアル: 1. Node.jsインストールパッケージをダウンロードする公...

MySQL 8.0 のメモリ関連パラメータの概要

理論的には、MySQL によって使用されるメモリ = グローバル共有メモリ + max_connec...

LINUX ポートが占有されているかどうかを確認します

ポートが占有されているかどうかは、これまで一度もわかりませんでした。多くの人に尋ねて、ようやくわかり...

イメージのアップロードとダウンロードに docker をプロキシするためのプライベート ライブラリとして nexus を使用する

1. Nexusの設定1. Dockerプロキシを作成する外部ネットワーク ウェアハウスからローカル...

TomcatとJDKのバージョンの対応と各Tomcatバージョンの機能

Apache Tomcat は、Java Servlet および Java Server Pages...

Vueはビデオ再生を実装するためにビデオタグを使用します

この記事では、ビデオタグを使用してビデオ再生を実装するVueの具体的なコードを参考までに共有します。...

大量のデータをMySQLにインポートする際に発生する問題と解決策の分析

プロジェクトでは、SQL を使用してデータ分析を実行するために、大量のデータをデータベースにインポー...

ウェブデザイナーのための超便利なツール 50 選

ウェブデザイナーになるのは簡単ではありません。デザインやアーキテクチャを考慮するだけでなく、さまざま...

DockerにRedisをインストールし、設定ファイルとして起動する詳細な説明

更新: 最近、サーバーがマイニング ウイルスによってハッキングされたことが判明しました。これは、おそ...

Vueはスクロールバースタイルを実装します

最初はブラウザのスクロールバーのスタイルを変更して効果を実現したいと思っていましたが、情報を調べてみ...

MySQL構成SSL証明書ログインの実装

目次序文1. MySQLはSSL構成を有効にする1.1 SSLが有効になっているかどうかを確認する1...

JS でオブジェクトが空オブジェクトかどうかを判断する 5 つの方法

1. jsonオブジェクトをjson文字列に変換し、文字列が「{}」であるかどうかを判断します。 v...