Dockerミラーウェアハウスハーバーコンバット

1つ:はじめに

1. Harbourは、Dockerイメージを格納するためのエンタープライズレベルのレジストリサービスです。
2.レジストリはDcokerの公式のプライベートウェアハウスイメージです。ローカルイメージにタグを付けて、レジストリからコンテナのプライベートウェアハウスにプッシュできます。企業はDokcerfileを使用して、独自のニーズに応じて独自のイメージを生成し、それらをプライベートウェアハウスにプッシュすることができます。これにより、イメージのプルの効率が大幅に向上します。
ここに画像の説明を挿入

2つ:説明されるHarbourコアコンポーネント

Harbourのアーキテクチャは、主に次の5つのコンポーネントで構成されてい
ます。1.プロキシ:
Harbourのレジストリ、UI、トークン、およびその他のサービス。フロントエンドのリバースプロキシを介して、ブラウザとDockerクライアントのリクエストを均一に受信し、リクエストをバックエンドに転送します。さまざまなサービス。

2.レジストリ:
Dockerイメージの保存とDockerプッシュ/プルコマンドの処理を担当します。ユーザーへのアクセスを制御する必要があるため、つまり、ユーザーごとにDockerイメージに対する読み取りと書き込みのアクセス許可が異なるため、レジストリはトークンサービスをポイントし、Dockerのプル/プッシュリクエストのたびにユーザーに正当なトークンを運ぶように強制します。レジストリは公開鍵はトークンを復号化して検証します。

3.コアサービス:
これはHarbourのコア機能であり、主に次のサービスを提供します:
1)UI:ユーザーがレジストリ上のイメージを管理し、ユーザーを承認するのに役立つグラフィカルインターフェイスを提供します。
2)Webhook:レジストリのイメージステータス変更のステータスをタイムリーに取得するには、ステータス変更をUIモジュールに渡すようにレジストリでwebhookを構成します。
3)トークンサービス:ユーザーの権限に応じて、各Dockerプッシュ/プルコマンドのトークンを発行します。Dockerクライアントの要求がトークンを含まない場合は、ここにリダイレクトされます。トークンを取得したら、レジストリに再度進みますリクエスト。
4)データベース:
コアサービスにデータベースサービスを提供し、ユーザー権限、監査ログ、Dockerイメージのグループ化情報などのデータを格納します。
5)ログコレクター:
Harbourの操作を監視するために、将来の分析のために他のコンポーネントのログを収集します。

3:ハーバーとレジストリの比較

HarbourとRegistryはどちらもDockerのミラーウェアハウスですが、HarborはRegisrtyに比べて多くの利点があるため、より多くの企業が選択します。
1.ネットワーク送信を最適化するための階層化された送信メカニズムを提供します
。Dockerイメージは階層化されており、各送信が完全なファイルを使用する場合(FTPは適切ではありません)、明らかに経済的ではありません。階層化された送信を識別するメカニズムを提供する必要があり、送信のオブジェクトを決定するための識別子として、層のUUIDを提供する必要があります。
2.ユーザーエクスペリエンスを最適化するためのWEBインターフェイスを提供します
。画像の名前のみを使用してアップロードおよびダウンロードするのは明らかに不便です。パブリックインターフェイスとプライベートイメージの区別など、ログインおよび検索機能をサポートするには、ユーザーインターフェイスが必要です。
3.水平方向の拡張クラスターをサポート
ユーザーが中央サーバーに画像をアップロードおよびダウンロードする場合、対応するアクセス圧力を分解する必要があります。
4.優れたセキュリティメカニズム
企業の開発チームにはさまざまなポジションがあり、ポジションを変えると、セキュリティを強化するために異なる権限が割り当てられます。
5. Harbourは役割ベースのアクセス制御メカニズムを提供し、プロジェクトを通じてミラーの組織とアクセス権を制御します。Kubernetesでは、リソースは名前空間によって分離されます。エンタープライズレベルのアプリケーションシナリオでは、2つの組み合わせにより、kubernetesによって使用されるミラーリソースを効果的に管理およびアクセスでき、ミラー使用のセキュリティを強化できます。特にマルチテナントシナリオでは、マルチテナントミラーリソースの管理とアクセス制御は、テナント、名前空間、およびプロジェクトの組み合わせによって実現できます。

4:港のシンプルな展開

サーバー構成
ここに画像の説明を挿入
に関する注意:HarbourのすべてのサービスコンポーネントはDockerにデプロイされるため、公式インストールではDocker-composeを使用して迅速にデプロイするため、Docker Docker-composeをインストールする必要があります。HarbourはDocker Registry V2バージョンに基づいているため、Dockerが必要ですバージョンが1.10.0以上で、Docker-composeバージョンが1.6.0以上である

【注:如果安装不上就先安装epel-release源,然后安装docker-compose!
 # wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
】
1、安装harbor依赖环境
	1)安装docker
	yum -y install docker
	2)安装docker-compose
	yum -y install docker-compose
	3)依赖软件安装
	yum install -y yum-utils device-mapper-persistent-data lvm2 python-pip
2、下载离线安装包harbor-offline-installer-v1.5.3.tgz
	1)使用下载命令wget或者aria2c下载harbor
	wget 【https://github.com/goharbor/harbor/releases 找到字需要安装的版本】
	2)解压harbor到本地
	tar zxf harbor-offline-installer-vXXXX.tgz
3)配置文件【harbor默认的数据存储目录就是/data目录 (安装时会自动创建)如下图】
# cd harbor/
# vim harbor.cfg

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
4)インストール

【cd /barbor】
检测并创建harbor需要文件
# ./prepare
安装
# ./install.sh
停止
sudo docker-compose stop
启动
sudo docker-compose start

UIインターフェースのログイン

http://linux.com admin / Harbour12345 [ホストの構成]
ここに画像の説明を挿入
ここに画像の説明を挿入

コマンドラインログイン

1.3.X以降のDocker以降、Dockerレジストリの相互作用はデフォルトでHTTPSを使用していますが、デフォルトではHTTPサービスを使用してプライベートイメージを構築しているため、構成を変更する必要があります。そうしないと、
[デーモンからのエラー応答:Get https://linux.com/ v1 / users /:ダイヤルtcp XXX.XXX.XXX.XXX:443:接続:接続が拒否されました
]
方法1:

# vi /usr/lib/systemd/system/docker.service

ここに画像の説明を挿入
方法2:

# cd /etc/docker/
# vi daemon.json
{
 "insecure-registries" : ["linux.com"]
}

Dockerを再起動します

# systemctl daemon-reload
# systemctl restart docker
# docker login linux.com

ここに画像の説明を挿入

给镜像打标签
# docker tag photon:1.0 linux.com/test/photon:1.0
上传镜像
# docker push linux.com/test/photon:1.0
删除镜像
# docker rmi linux.com/test/photon:1.0

ここに画像の説明を挿入

リファレンス
https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md

公開された51元の記事 ウォンの賞賛2 ビュー6374

おすすめ

転載: blog.csdn.net/wenwang3000/article/details/102966610