centos7 に基づく: Harbor-2.7.2 の展開とインストールのチュートリアル
1. ソフトウェアリソースの紹介
Harbor は、VMware のオープン ソースのエンタープライズ レベルの DockerRegistry プロジェクトであり、プロジェクトのアドレスは https://github.com/vmware/harbor です。その目標は、ユーザーがエンタープライズ レベルの Docker レジストリ サービスを迅速に構築できるようにすることです。Dockerのオープンソースレジストリをベースとしており、管理UI、ロールベースのアクセス制御(Role Based Access Control)、AD/LDAP統合、監査ログ(Auditlogging)など企業ユーザーが必要とする機能を提供しており、中国語もネイティブでサポートしています。Harbor の各コンポーネントは Docker コンテナとして構築され、Docker Compose を使用してデプロイされます。Harbor のデプロイに使用される Docker Compose テンプレートは /Deployer/docker-compose.yml にあり、5 つのコンテナで構成されています。これらのコンテナは Docker リンクを通じて相互に接続されており、コンテナはコンテナ名を通じて相互にアクセスできます。エンドユーザーに対しては、プロキシ (つまり Nginx) のサービス ポートのみを公開する必要があります。
プロキシ: Nginx サーバーで構成されるリバース プロキシ。
レジストリ: Docker の公式オープンソース レジストリ イメージで構成されるコンテナ インスタンス。
UI: アーキテクチャのコア サービス このコンテナを構成するコードは、Harbor プロジェクトの本体です。MySQL: 公式 MySQL イメージで構成されるデータベース コンテナー。
ログ: rsyslogd を実行しているコンテナーは、log-driver を通じて他のコンテナーのログを収集します。
2. 港の特徴
a. ロールベースの制御: ユーザーとウェアハウスはプロジェクトに基づいて編成され、ユーザーはプロジェクトに基づいて異なる権限を持つことができます b. ミラーベースの
レプリケーション戦略: 複数の Harbor インスタンス間でミラーをレプリケートできます c. LDAP のサポート: Harbor のユーザー認証は既存の LDAP ユーザーを使用可能
、イメージの削除とガベージ コレクション:イメージを削除でき、イメージが占有しているスペースはリサイクル可能 ほとんどのユーザー操作 API は、ユーザーがシステムを拡張するのを容易にします。
e. ユーザー UI: ユーザーはイメージ ウェアハウスを簡単に参照、検索し、プロジェクトを管理できます
f. 簡単なデプロイメント機能: Harbor は、仮想アプライアンスのインストールに加えて、オンラインおよびオフラインのインストールを提供します
g. Harbor と Docker レジストリの関係 : Harbor は本質的に Docker レジストリをカプセル化し、拡張します独自のビジネスモジュール
3. 港湾認証プロセス
a. Dockerdaemon は、Docker レジストリからイメージをプルします。
b. Docker レジストリに認証が必要な場合、レジストリは 401 Unauthorized 応答を返し、応答には Docker クライアントの認証方法に関する情報が含まれます。
c. Dockerclient は、認証サーバーにリクエストを送信し、レジストリから返された情報に基づいて認証トークンを取得します。
d. 認証サーバーは、送信されたユーザー情報が独自のビジネス実装に基づいてビジネス要件を満たしているかどうかを検証します。e. ユーザー データ ウェアハウスは、ユーザー関連の情報を返します。
f. 認証サーバーは、照会されたユーザー情報と現在のユーザーの関連する許可情報に基づいてトークンを生成します。これで完全な認可プロセスです。ユーザーが上記のプロセスを完了すると、関連するプル/プッシュ操作が実行されます。実行することができます。認証情報は毎回リクエストヘッダーに含まれます。
4. ハーバー認証プロセス
a. まず、リクエストはプロキシ コンテナによってインターセプトされ、指定された認証サーバーにジャンプします。
b. 認証サーバーに権限認証が設定されている場合は、401 が返されます。有効なトークンを特定のリクエストに含める必要があることを dockerclient に通知します
。認証論理アドレスは、アーキテクチャ図内のコア サービスを指します。
c. Docker クライアントがエラー コードを受信したとき。クライアントは、基本認証認証のために認証リクエスト (ユーザー名とパスワードを含む) をコアサービスに送信します。
d. C のリクエストが ngnix に送信されると、ngnix は設定された認証アドレスに従って、ユーザー名とパスワードを含むリクエストをコア サービスに送信します。
e. coreservices はユーザー名とパスワードを取得した後、(独自のデータベースを使用するか、LDAP を使用して) ユーザー情報を認証します。成功すると、認証の成功に関する情報が返されます。
1. 基本的な要件のインストール
(1) Python は 2.7 以降である必要があります (私のものは python-2.7.5)
centos自带
(2) Docker エンジンは 1.10 以降である必要があります (私の場合は docker-18.06.1)
uname -r
3.10.0-1160.el7.x86_64
(3) Docker Compose は 1.6.0 以降である必要があります (私の場合は Docker Compose-2.17.3)
docker-compose のインストール
1. github から docker-compose バイナリ ファイルをダウンロードしてインストールし、
最新バージョンの docker-compose ファイルをダウンロードします。
curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
github へのアクセスが遅すぎる場合は、daocloud を使用してダウンロードできます。
curl -L https://github.com/docker/compose/releases/download/1.9.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#添加可执行权限
chmod +x /usr/local/bin/docker-compose
2番目の方法は、公式Webサイトからダウンロードしてcentosの/usr/local/binにインポートし、リソースにファイルをアップロードします。
https://github.com/docker/compose/releasesから取得して、
インストール結果をテストします。
docker-compose --version
docker-compose version 1.16.1, build 1719ceb
2. ハーバーをインストールする
1. Harbor 公式ダウンロードアドレス: https://github.com/goharbor/harbor/releases
(ファイルを自分のリソースにアップロードし、自分でダウンロードします)
2. サーバー パス /opt/software にアップロードし、/opt/module に抽出します。
tar -zxvf ./二进制包名 -C /opt/module
構成ファイルを編集し、構成ファイルからサフィックス
vim Harbor.ymlを削除します。
3.Docker設定ファイルを変更する
vim デーモン.json
{
"data-root": "/opt/module/docker_data",
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
],
"insecure-registries": [
"192.168.2.221:80"
],
"registry-mirrors": [
"https://registry.docker-cn.com",
"https://a8qh6yqv.mirror.aliyuncs.com",
"http://hub-mirror.c.163.com"
]
}
#上如果出现报错可将这个配置删除重新加载
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
],
systemctl stop docker # 重启docker
systemctl daemon-reload #加载配置文件
systemctl start docker
--------/docker.service ドキュメントの記録 (この部分は私の個人的な記録です。無視してください) ----------------------- - ---------
vim /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP \$MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
4.ハードウェアをインストールし、install.sh スクリプトを実行します。
./install.sh
インストールが成功したかどうかを判断するには、この記事に示すように、スクリプトの実行後に出力が表示されます。
[Step 5]: starting Harbor ...
[+] Running 10/10
⠿ Network harbor_harbor Created 0.1s
⠿ Container harbor-log Started 0.8s
⠿ Container registry Started 1.8s
⠿ Container harbor-db Started 1.8s
⠿ Container harbor-portal Started 1.7s
⠿ Container registryctl Started 1.6s
⠿ Container redis Started 1.7s
⠿ Container harbor-core Started 2.3s
⠿ Container harbor-jobservice Started 3.1s
⠿ Container nginx Started 3.0s
✔ ----Harbor has been installed and started successfully.----
docker イメージを確認すると、さらにハードなイメージがあることがわかります。
5. より熱心に始める
/opt/module/hardor ディレクトリに移動して実行します。
docker-compose up -d
docker ps を実行してコンテナを表示します。
6. ブラウザでコンテンツを表示できます
http://192.168.2.221 # yml配置文件配置的
username/password : admin/Harbor12345 # 默认密码
Harborの停止と開始方法
//切换到harbor安装包目录
docker-compose stop //停止Harbor
docker-compose start //启动Harbor
7. サーバーコマンドラインログイン
[root@only harbor]# docker login -u admin http://192.168.2.221
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
次のようにパスワードを公開してログインすることもできます。
docker login -u admin -p Harbor12345 http://harbor:8079
港の設置と展開が完了
港の利用
ステップ 1: 最初にこの例を確認することをお勧めします。
docker コンテナ化を使用して mysql-8.0.27 をデプロイし、デフォルトのポート 3306 を 3306 に変更してプロセス全体を記録します。リンク: http://t.csdn.cn/C5jiu
ステップ 2: イメージタグを変更し、mysql イメージをハーバーにプッシュします。
#修改镜像 tag:
docker tag mysql:latest 192.168.2.221:80/library/mysql:8.0.27
#登录harbor
docker login -u admin -p 123456 192.168.2.221:80
#推送镜像到harbor
docker push 192.168.2.221:80/library/mysql:8.0.27
個人記録は無視してください
#鏡にタグを付けて名前を変更してください
docker tag 192.168.2.221:80/library/mysql:8.0.12 168.2.221:80/library/mysql:v8.0.12
ステップ 3: 画像を表示する
画像プッシュ機能が完成しました。
ミラーを表示するための他の通常ユーザーを作成します
ステップ 4: イメージをダウンロードする
docker rmi 192.168.2.221:80/library/mysql:8.0.27 //先删除本地镜像
docker pull 192.168.2.221:80/library/mysql:8.0.27 //拉取镜像
v1: Pulling from library/mysql:8.0.27
Digest: sha256:81de8ab261ecfdb0bfd66ed1b1db8c13222b288fcd732c1dcdd09446f250b185
Status: Downloaded newer image for 192.168.2.221:80/library/mysql:8.0.27
参考文献
間違いがある場合は修正してください。侵害がある場合は、削除するために私に連絡してください。
https://www.cnblogs.com/wxwgk/p/13287336.html
https://cloud.tencent.com/developer/article/1865259