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

推薦する

Vue はトークンを取得してトークン ログインのサンプル コードを実装します

ログイン認証にトークンを使用する考え方は次のとおりです。 1. 初めてログインする場合、フロントエン...

Vueプロジェクトの最適化とパッケージ化の詳細な説明

目次序文1. ルーティングの遅延読み込み1. ルートの遅延読み込みが必要なのはなぜですか? 2. ル...

HTML で点線の境界線を設定する方法

CSSスタイルとHTMLタグ要素を使用するさまざまな HTML タグに点線の境界線を追加するために、...

HTMLはマーキーを使用してテキストを左右にスクロールします

コードをコピーコードは次のとおりです。 <本文> //マーキーの助けを借りて<MA...

回転するフリップカードアニメーションの効果を実現するCSS

回転フリップ効果の CSS アニメーション、具体的な内容は次のとおりです。 1. まず2つのボックス...

Centos6.5 glibc アップグレードプロセスの紹介

目次シナリオ要件glibc バージョンglibcのインストールglibc ソフトリンクシナリオ要件C...

JSオブジェクトの走査順序の詳細な説明

JavaScript ではオブジェクトを走査する順序は固定されていないと聞いたことがある人もいるかも...

docker compose サービスの起動順序を制御する方法

まとめDocker-compose は複数の Docker コンテナ サービスを簡単に組み合わせるこ...

Linux で削除できないファイル/フォルダの解決方法

序文最近、弊社のサーバーがハッカーの攻撃を受け、一部のファイルの属性が変更されたため、ウイルスファイ...

テーブル設定の背景画像が100%表示されない解決策

開発中に以下の状況が発見されました。 (1) ファイルが.jspファイル拡張子で保存されている場合、...

階段効果を実現するためのWeChatアプレットカスタムメニューナビゲーション

設計意図ページを開発する際には、ページ上のナビゲーション メニューをクリックしたときにページを対応す...

vue-admin-template 動的ルーティング実装例

ログインを提供し、ユーザー情報データインターフェースを取得するapi/user.js内 '@...

スライダー効果を実装するミニプログラム

この記事の例では、スライディングブロック効果を実現するための小さなプログラムの具体的なコードを参考ま...

Vue3.0でカスタム命令を書くための簡単な手順

序文Vue には、v-if、v-bind、v-on などの豊富な組み込みディレクティブが用意されてい...

IE5.0以降のHTCコンポーネントの定義の概要

Microsoft IE 5.0 がリリースされる前は、Web プログラミングにおける最大の課題は、...