この記事では、Harbor アーキテクチャの構成と、実行時に各コンポーネントを使用する方法について説明します。 建築 コンテナ情報 [root@liumiao 港]# docker-compose ps 名前 コマンド 状態 ポート ------------------------------------------------------------------------------------------------------------------------------------------------ harbor-adminserver /harbor/start.sh アップ harbor-db /usr/local/bin/docker-entr ... 3306/tcp を起動 harbor-jobservice /harbor/start.sh アップ harbor-log /bin/sh -c /usr/local/bin/ ... 127.0.0.1:1514->10514/tcp が起動しました harbor-ui /harbor/start.sh アップ nginx nginx -g デーモンをオフ; 0.0.0.0:443->443/tcp、0.0.0.0:4443->4443/tcp、0.0.0.0:80->80/tcp が起動しています redis docker-entrypoint.sh redis ... 6379/tcp を起動 レジストリ /entrypoint.sh サーブ /etc/ ... 5000/tcp をアップ [root@liumiao harbor]# 具体的な指示 プロキシ プロキシは nginx をリバース プロキシとして使用し、プロセス全体の中核は nginx 構成ファイルにあります。次の構成ファイルを通じて、さまざまな他のコンポーネントを統合するための harbor の指示を明確に確認できます。実際の実装は基本的に nginx の設定に依存します。 [root@liumiao 港]# ls ライセンス 共通 docker-compose.notary.yml ha harbor.v1.5.2.tar.gz open_source_license 通知 docker-compose.clair.yml docker-compose.yml harbor.cfg install.sh 準備 [root@liumiao harbor]# cat common/config/nginx/nginx.conf ワーカープロセスは自動です。 イベント { ワーカー接続 1024; epoll を使用します。 multi_accept オン; } http { tcp_nodelay オン; # これは、すべてのケースでリクエストのバッファリングを無効にするために必要です プロキシ_http_バージョン 1.1; アップストリームレジストリ { サーバーレジストリ:5000; } アップストリームUI{ サーバーUI:8080; } ログフォーマット timed_combined '$remote_addr - ' '"$request" $status $body_bytes_sent' '"$http_referer" "$http_user_agent" ' '$request_time $upstream_response_time $pipe'; access_log /dev/stdout タイムド_結合; サーバー{ 聞く 80; server_tokens オフ; # 大きな画像のアップロード時に HTTP 413 を回避するために制限を無効にします クライアントの最大ボディサイズ 0; 位置 / { proxy_pass http://ui/; proxy_set_header ホスト $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # Nginx インスタンスなどの他のプロキシの背後に Harbor を設定する場合、プロキシにすでに同様の設定がある場合は、以下の行を削除します。 proxy_set_header X-Forwarded-Proto $scheme; proxy_buffering をオフ; proxy_request_buffering をオフ; } 場所 /v1/ { 404 を返します。 } 場所 /v2/ { proxy_pass http://ui/registryproxy/v2/; proxy_set_header ホスト $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # Nginx インスタンスなどの他のプロキシの背後に Harbor を設定する場合、プロキシにすでに同様の設定がある場合は、以下の行を削除します。 proxy_set_header X-Forwarded-Proto $scheme; proxy_buffering をオフ; proxy_request_buffering をオフ; } 場所 /サービス/ { proxy_pass http://ui/service/; proxy_set_header ホスト $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # Nginx インスタンスなどの他のプロキシの背後に Harbor を設定する場合、プロキシにすでに同様の設定がある場合は、以下の行を削除します。 proxy_set_header X-Forwarded-Proto $scheme; proxy_buffering をオフ; proxy_request_buffering をオフ; } 場所 /サービス/通知 { 404 を返します。 } } } [root@liumiao 港]# データベース MariaDB 10.2.14が使用されており、ハーバーのデータベース名はレジストリであることがわかります。 [root@liumiao harbor]# docker exec -it harbor-db sh sh-4.3#mysql -uroot -pliumiaopw MariaDB モニターへようこそ。コマンドは ; または \g で終わります。 MariaDB接続IDは21です サーバーバージョン: 10.2.14-MariaDB ソース配布 Copyright (c) 2000、2018、Oracle、MariaDB Corporation Ab およびその他。 ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。 MariaDB [(なし)]> データベースを表示します。 +--------------------+ | データベース | +--------------------+ | 情報スキーマ | |mysql | | パフォーマンススキーマ | | レジストリ | +--------------------+ セット内の 4 行 (0.00 秒) MariaDB [(なし)]> データベーステーブルの情報を確認すると、この使用モードの現在のバージョンでは、データベースには次のように約20個のテーブルがあることがわかります。 MariaDB [(なし)]> レジストリを使用します。 テーブル名と列名の補完のためのテーブル情報の読み取り -Aでこの機能をオフにすると起動が速くなります。 データベースが変更されました MariaDB [レジストリ]> テーブルを表示します。 +---------------------------------+ | レジストリ内のテーブル | +---------------------------------+ | アクセス | | アクセスログ | | アレンビックバージョン | |clair_vuln_タイムスタンプ| |港のラベル| | 港湾資源ラベル | | 画像スキャンジョブ | | 画像スキャンの概要 | | プロジェクト | | プロジェクトメンバー | | プロジェクトメタデータ | | プロパティ | | レプリケーション即時トリガー | | レプリケーションジョブ | | レプリケーションポリシー | | レプリケーションターゲット | | リポジトリ | | 役割 | | ユーザー | | ユーザーグループ | +---------------------------------+ セット内の行数は 20 です (0.00 秒) MariaDB [レジストリ]> ログコレクター デフォルトでは、ハーバーのログは次のディレクトリに収集され、管理されます。 [root@liumiao harbor]# ls /var/log/harbor adminserver.log jobservice.log mysql.log proxy.log redis.log registry.log ui.log [root@liumiao 港]# ドッカーの作成 [root@liumiao harbor]# cat docker-compose.yml バージョン: '2' サービス: ログ: イメージ: vmware/harbor-log:v1.5.2 コンテナ名: ハーバーログ 再起動: 常に ボリューム: - /var/log/harbor/:/var/log/docker/:z - ./common/config/log/:/etc/logrotate.d/:z ポート: - 127.0.0.1:1514:10514 ネットワーク: -港 レジストリ: イメージ: vmware/registry-photon:v2.6.2-v1.5.2 コンテナ名: レジストリ 再起動: 常に ボリューム: - /データ/レジストリ:/ストレージ:z - ./common/config/registry/:/etc/registry/:z ネットワーク: -港 環境: -GODEBUG=netdns=cgo 指示: ["サーブ", "/etc/registry/config.yml"] 依存: -ログ ログ記録: ドライバー: "syslog" オプション: syslog アドレス: "tcp://127.0.0.1:1514" タグ: 「レジストリ」 マイスク: イメージ: vmware/harbor-db:v1.5.2 コンテナ名: harbor-db 再起動: 常に ボリューム: - /data/データベース:/var/lib/mysql:z ネットワーク: -港 環境変数: - ./common/config/db/env 依存: -ログ ログ記録: ドライバー: "syslog" オプション: syslog アドレス: "tcp://127.0.0.1:1514" タグ: "mysql" 管理サーバー: イメージ: vmware/harbor-adminserver:v1.5.2 コンテナ名: ハーバー管理サーバー 環境変数: - ./common/config/adminserver/env 再起動: 常に ボリューム: - /data/config/:/etc/adminserver/config/:z - /data/secretkey:/etc/adminserver/key:z - /データ/:/データ/:z ネットワーク: -港 依存: -ログ ログ記録: ドライバー: "syslog" オプション: syslog アドレス: "tcp://127.0.0.1:1514" タグ: "adminserver" ユーザ: イメージ: vmware/harbor-ui:v1.5.2 コンテナ名: harbor-ui 環境変数: ./common/config/ui/env を参照してください。 再起動: 常に ボリューム: - ./common/config/ui/app.conf:/etc/ui/app.conf:z - ./common/config/ui/private_key.pem:/etc/ui/private_key.pem:z - ./common/config/ui/certificates/:/etc/ui/certificates/:z - /data/secretkey:/etc/ui/key:z - /data/ca_download/:/etc/ui/ca/:z - /data/psc/:/etc/ui/token/:z ネットワーク: -港 依存: -ログ -管理者サーバー - レジストリ ログ記録: ドライバー: "syslog" オプション: syslog アドレス: "tcp://127.0.0.1:1514" タグ: "ui" ジョブサービス: イメージ: vmware/harbor-jobservice:v1.5.2 コンテナ名: ハーバージョブサービス 環境変数: - ./common/config/jobservice/env 再起動: 常に ボリューム: - /data/job_logs:/var/log/jobs:z - ./common/config/jobservice/config.yml:/etc/jobservice/config.yml:z ネットワーク: -港 依存: - レディス - ユーアイ -管理者サーバー ログ記録: ドライバー: "syslog" オプション: syslog アドレス: "tcp://127.0.0.1:1514" タグ: "jobservice" レディス: イメージ: vmware/redis-photon:v1.5.2 コンテナ名: redis 再起動: 常に ボリューム: - /データ/redis:/データ ネットワーク: -港 依存: -ログ ログ記録: ドライバー: "syslog" オプション: syslog アドレス: "tcp://127.0.0.1:1514" タグ: "redis" プロキシ: イメージ: vmware/nginx-photon:v1.5.2 コンテナ名: nginx 再起動: 常に ボリューム: - ./common/config/nginx:/etc/nginx:z ネットワーク: -港 ポート: - 80:80 -443:443 -4443:4443 依存: -MySQLについて - レジストリ - ユーアイ -ログ ログ記録: ドライバー: "syslog" オプション: syslog アドレス: "tcp://127.0.0.1:1514" タグ: 「プロキシ」 ネットワーク: 港: 外部: 偽 [root@liumiao 港]# 注: カスタムポート番号 前の記事の例では、デフォルトのポート 80 を港のポートとして使用しています。これを変更したい場合 (たとえば、8848 に変更したい場合) は、以下の手順に従って変更してください。 コンテンツの設定 港湾設定項目の詳細情報は、データベースのプロパティまたはapi/systeminfoで確認できます。 プロパティ [root@liumiao harbor]# docker exec -it harbor-db sh sh-4.3#mysql -uroot -pliumiaopw MariaDB モニターへようこそ。コマンドは ; または \g で終わります。 MariaDB接続IDは153です サーバーバージョン: 10.2.14-MariaDB ソース配布 Copyright (c) 2000、2018、Oracle、MariaDB Corporation Ab およびその他。 ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。 MariaDB [(なし)]> レジストリを使用する テーブル名と列名の補完のためのテーブル情報の読み取り -Aでこの機能をオフにすると起動が速くなります。 データベースが変更されました MariaDB [レジストリ]> プロパティから * を選択します。 +----+--------------------------------+------------------------------------------------+ | id | k | v | +----+--------------------------------+------------------------------------------------+ | 1 | cfg_expiration | 5 | | 2 | プロジェクト作成制限 | 全員 | | 3 | uaa_client_secret | <enc-v1>cBvRPcG+p3oNVnJh8VM+SjvlcEsKYg== | | 4 | clair_db_host | postgres | | 5 | トークンサービス URL | http://ui:8080/service/token | | 6 | mysql_password | <enc-v1>HDqd+PbHcG9EWK9DF3RzM43fTtPvCjdvyQ== | | 7 | uaa_endpoint | uaa.mydomain.org | | 8 | 最大ジョブワーカー数 | 50 | | 9 | sqlite_file | | | 10 | email_from | admin <[email protected]> | | 11 | ldap_base_dn | ou=people、dc=mydomain、dc=com | | 12 | clair_db_port | 5432 | | 13 | mysql_port | 3306 | | 14 | ldap_search_dn | | | 15 | clair_db_username | postgres | | 16 | 電子メールが安全でない | 偽 | | 17 | データベースタイプ | mysql | | 18 | ldap_filter | | | 19 | 公証人付き | 偽 | | 20 | 管理者初期パスワード | <enc-v1>4ZEvd/GfBYSdF9I6PfeI/XIvfGhPITaD3w== | | 21 | notary_url | http://notary-server:4443 | | 22 | 認証モード | db_auth | | 23 | ldap_group_search_scope | 2 | | 24 | ldap_uid | uid | | 25 | email_username | [email protected] | | 26 | mysql_database | レジストリ | | 27 | リロードキー | | | 28 | clair_url | http://clair:6060 | | 29 | ldap_group_search_filter | オブジェクトクラス=グループ | | 30 | メールアドレスパスワード | <enc-v1>h18ptbUM5oJwtKOzjJ4X5LOiPw== | | 31 | email_ssl | 偽 | | 32 | ldap_timeout | 5 | | 33 | uaa_client_id | ID | | 34 | レジストリ ストレージ プロバイダー名 | ファイルシステム | | 35 | 自己登録 | true | | 36 | 電子メールポート | 25 | | 37 | ui_url | http://ui:8080 | | 38 | トークン有効期限 | 30 | | 39 | 電子メール ID | | | 40 | clair_db | postgres | | 41 | uaa_verify_cert | 真 | | 42 | ldap_verify_cert | 真 | | 43 | ldap_group_attribute_name | cn | | 44 | mysql_host | mysql | | 45 | 読み取り専用 | 偽 | | 46 | ldap_url | ldaps://ldap.mydomain.com | | 47 | 外部エンドポイント | http://192.168.163.128 | | 48 | ldap_group_base_dn | ou=グループ、dc=mydomain、dc=com | | 49 | with_clair | 偽 | | 50 | admiral_url | NA | | 51 | ldap_scope | 2 | | 52 | レジストリ URL | http://registry:5000 | | 53 | ジョブサービス URL | http://jobservice:8080 | | 54 | 電子メールホスト | smtp.mydomain.com | | 55 | ldap_search_password | <enc-v1>F2QZkeEPTQPsJ9KNsBWcXA== | | 56 | mysql_username | ルート | | 57 | clair_db_password | <enc-v1>IGBg3NxvT7qCYGIB+zizax+GojoM7ao2VQ== | +----+--------------------------------+------------------------------------------------+ セット内の行数は 57 です (0.00 秒) MariaDB [レジストリ]> API/システム情報 [root@liumiao harbor]# curl http://localhost/api/systeminfo { "with_notary": false, "with_clair": 偽、 "with_admiral": false, "admiral_endpoint": "NA", "auth_mode": "db_auth", "レジストリURL": "192.168.163.128", "プロジェクト作成制限": "全員", 「自己登録」:true、 "has_ca_root": 偽、 "ハーバーバージョン": "v1.5.2-8e61deae", "次のスキャンすべて": 0, "registry_storage_provider_name": "ファイルシステム", "読み取り専用": 偽 }[root@liumiao 港]# 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。 以下もご興味があるかもしれません:
|
<<: メモリ構成が過剰でMySQLが起動できない問題の解決方法
>>: Vue でメニュー権限制御を実装するためのサンプルコード
序文実際のビジネスでは、ページングは一般的なビジネス要件です。次に、制限クエリを使用します。制限...
この記事では、Webサイトを作ったことがある人にとっては馴染みのあるテーブルについて主に説明します。...
目次CSS3 ボックスモデルa. CSS3 フィルターb. CSS3 calc関数c. CSS3 ト...
1. 仮想マシンをダウンロードする公式ダウンロードウェブサイト: https://www.vmwar...
目次1. シナリオ2. IJavaScriptShadowboxを実装する2.1 メインスレッドの実...
Docker に Tomcat をインストールする場合、大きなファイルをダウンロードするときなど、場...
最近、モバイル プロジェクトの開発方法を学ぶために vue を使用し、スクロールには better-...
序文Deepin のユーザー インターフェイスは、使用時に非常に見栄えがします。インターフェイス効果...
1.ページを XML タイプとして宣言しないでください。ページでは UTF-8 または UTF-16...
目次序文VMware クローン仮想マシン (準備、3 台の仮想マシンのクローン、1 台のマスター、2...
W3C 標準化プロセスは 7 つの異なるステップに分かれています。 W3C 標準化プロセスは 7 つ...
目次1. インストール2. videojsの紹介3. コンポーネントでのテストと使用1. 基本的な自...
正式な環境でアップグレードする場合は、データと重要な設定をバックアップしてください。アップグレードに...
Docker ネットワークの作成に –subnet を追加した後、docker network ls...
1. 依存関係をダウンロードするnpm インストール @antv/データセットnpm インストール ...