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のルートパスワードをリセットする最も簡単な方法

推薦する

友達やグループを見つけるためのJavaScriptのLayim

現在、layuiの関係者はlayim友達検索ページの構造とスタイルを提供していません。私は個人的に非...

JavaScript Sandboxについての簡単な説明

序文:サンドボックスといえば、私たちの頭には反射的に上の写真が思い浮かび、すぐに興味がわいてくるかも...

Dockerイメージとコンテナの一般的な操作の詳細な説明

画像アクセラレータ中国の Docker Hub からイメージをプルすることが難しい場合があります。こ...

...

Linux で見つけるためのフレンドリーな代替手段 (fd コマンド)

fd コマンドは、Linux ファイル システムを検索するためのシンプルで簡単な方法を提供します。...

CSS の位​​置属性 (absolute|relative|static|fixed) の概要と応用

まず、CSS3 Api の position 属性の定義を見てみましょう。 static: 特別な配...

ティックアニメーション効果を作成するための svg+css または js

以前、上司からログイン後にチェックマークを表示できるプログラムを作るように言われたのですが、Baid...

XHTML 入門チュートリアル: テーブルタグの応用

<br />テーブルは XHTML では扱いにくいタグなので、このセクションで理解するだ...

Vue+flaskで動画合成機能を実現(ドラッグ&ドロップアップロード)

目次ドラッグアンドドロップアップロードについては以前の記事で書きました。ファイルをアップロードするF...

MySQLテーブルのフィールドと関連属性をエクスポートする手順

データベース内のテーブルのフィールドとプロパティをエクスポートし、テーブルを作成してWordに保存す...

Centos7 システム上の nginx サーバーで Phalcon 環境を構築する方法の詳細な説明

この記事では、centos7 システムの nginx サーバーの下に phalcon 環境を構築する...

MySQLはデフォルトのエンジンと文字セットの詳細を変更します

目次1. データベースエンジン1.1 ビューデータベースエンジン1.2 デフォルトのデータベースエン...

Linux システムファイル共有 samba 設定チュートリアル

目次sambaをアンインストールしてインストールする新しい共有パスを作成し、権限を設定するSamba...

MySQLの基本操作を詳しく解説(第2部)

序文この記事には1. データベースのいくつかの主要な制約2. テーブル間の関係制約:主キー制約: 機...

MYSQL 文字列強制変換メソッドの例

序文2 つのテーブル内の同じフィールドの型が異なっていたり、エンコード タイプが異なっていたりするた...