Docker5フル機能の港湾倉庫構築プロセス

Docker5フル機能の港湾倉庫構築プロセス

Harbor は、Docker イメージを保存および配布するためのエンタープライズ レベルのレジストリ サーバーです。エンタープライズ全体の Docker イメージ リポジトリを構築するために使用できます。 Docker のオープンソース プロジェクト Distribution をベースに、イメージ同期レプリケーション、脆弱性スキャン、権限管理など、企業に必要な機能が追加されています。 Harbor は、VMware がオープンソース化したエンタープライズ レベルの Docker レジストリ管理プロジェクトです。権限管理 (RBAC)、LDAP、ログ監査、管理インターフェイス、自己登録、イメージ複製、中国語サポートなどの機能が含まれています。

匿名プルをサポートするフル機能のリポジトリを構築する

[root@server1 mnt]# cd compose/
[root@server1 compose]# ls
docker-compose-Linux-x86_64-1.16.1 ドッカーコンポーズ-Linux-x86_64-1.24.1
docker-compose-Linux-x86_64-1.22.0 docker-compose-Linux-x86_64-1.27.0
[root@server1 compose]# mv docker-compose-Linux-x86_64-1.27.0 /usr/local/bin/docker-compose
[root@server1 compose]# chmod +x /usr/local/bin/docker-compose
[root@server1 mnt]# tar zxf harbor-offline-installer-v1.10.1.tgz

依存関係を解決し、ハーバーを解凍する

vim ハーバー.yml

港湾ディレクトリ

ここに画像の説明を挿入

認証とキーの場所を正しく記述する必要があります

./install.sh

スクリプトのインストールを実行する

redis を作成しています...完了
ハーバーコアを作成中...完了
nginx を作成しています...完了
harbor-jobservice を作成しています...完了しました
✔ ----Harbor が正常にインストールされ、起動しました。----

終わり

[root@server1 ハーバー]# docker-compose

docker-composeコマンドは、ハーバーディレクトリで実行する必要があります。

[root@server1 harbor]# docker-compose を開始
[root@server1 ハーバー]# docker-compose ps
      名前 コマンド 状態 ポート                                  
--------------------------------------------------------------------------------------------------------------------------------------------------------------
harbor-core /harbor/harbor_core アップ(正常)                                                                           
harbor-db /docker-entrypoint.sh 稼働中(正常)5432/tcp                                                                
harbor-jobservice /harbor/harbor_jobservice ... 稼働中(正常)                                                                           
harbor-log /bin/sh -c /usr/local/bin/ ... 稼働中 (正常) 127.0.0.1:1514->10514/tcp                                               
harbor-portal nginx -g デーモンオフ; 稼働中(正常)8080/tcp                                                                
nginx nginx -g デーモンオフ; 稼働中 (正常) 0.0.0.0:80->8080/tcp,:::80->8080/tcp,                                   
                                                                    0.0.0.0:443->8443/tcp、:::443->8443/tcp                                  
redis redis-server /etc/redis.conf アップ(正常)6379/tcp                                                                
レジストリ /home/harbor/entrypoint.sh アップ(正常) 5000/tcp                                                                
registryctl /home/harbor/start.sh 起動中(正常)

ミラーが起動していることを確認し、ブラウザにIPアドレスを直接入力します。

ここに画像の説明を挿入

ユーザ admin、パスワード yume

ここに画像の説明を挿入

[root@server1 docker]# docker logout reg.westos.org
reg.westos.org のログイン資格情報を削除する
[root@server1 docker]# docker ログイン reg.westos.org
ユーザー名: admin
パスワード: 
警告! パスワードは暗号化されずに /root/.docker/config.json に保存されます。
この警告を削除するには、資格情報ヘルパーを構成します。
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

ログインに成功しました

前回のログインからログアウトし、再度ログインしてください。これはデータベースに保存されている情報です。
ローカルで作成されたものではありません。

[root@server1 docker]# docker タグ yakexi007/game2048:latest reg.westos.org/library/game2048:latest
[root@server1 docker]# docker push reg.westos.org/library/game2048:latest  
プッシュはリポジトリ [reg.westos.org/library/game2048] を参照します。
88fca8ae768a: プッシュ 
6d7504772167: 押された 
192e9fad2abc: プッシュ 
36e9226e74f8: プッシュ 
011b303988d2: プッシュ 
最新: ダイジェスト: sha256:8a34fb9cb168c420604b6e5d32ca6d412cb0d533a826b313b190535c03fe9390 サイズ: 1364

倉庫にアップロードして表示する

ここに画像の説明を挿入

[root@server2 docker]# cat daemon.json 
{
  "レジストリミラー": ["https://reg.westos.org"]
}

サーバー2では、プライベート倉庫がポイントされています

レジストリ: https://index.docker.io/v1/
 ラベル:
 実験的: 偽
 安全でないレジストリ:
  127.0.0.0/8
 レジストリミラー:
  翻訳元
 ライブリストアが有効: false

そして、サーバ2でアドレス解決を行うのが効果的です

ここに画像の説明を挿入

[root@server2 docker]# docker pull reg.westos.org/library/game2048:latest
最新: library/game2048 から取得
534e72e7cedc: プル完了 
f62e2f6dfeef: プル完了 
fe7db6293242: プル完了 
3f120f6a2bf8: プル完了 
4ba4e6930ea5: プル完了 
ダイジェスト: sha256:8a34fb9cb168c420604b6e5d32ca6d412cb0d533a826b313b190535c03fe9390
ステータス: reg.westos.org/library/game2048:latest の新しいイメージをダウンロードしました
reg.westos.org/library/game2048:最新

server1からプッシュされたイメージがserver2に正常にプルダウンされました

ここに画像の説明を挿入

ログから、匿名ユーザーがプルしたことがわかります

[root@server1 docker]# docker タグ yakexi007/nginx:latest reg.westos.org/library/nginx:latest
[root@server1 docker]# docker push reg.westos.org/library/nginx
プッシュはリポジトリ [reg.westos.org/library/nginx] を参照します。
3bd8699f28ba: プッシュ 
1d3b68b6972f: 押された 
de1602ca36c9: プッシュ 
最新: ダイジェスト: sha256:5ea5a786e978abd8e6e0b6c0f37f7271be19c40d6b8247b1d9dae70c1fbab9eb サイズ: 949

server1にnginxイメージを再度アップロードする

ここに画像の説明を挿入

見ることができます

[root@server2 docker]# docker pull nginx
デフォルトタグの使用: 最新
最新: library/nginx からプル
cfb92865f5ba: プル完了 
8dd350b5e0d5: プル完了 
15157df2751c: プル完了 
ダイジェスト: sha256:5ea5a786e978abd8e6e0b6c0f37f7271be19c40d6b8247b1d9dae70c1fbab9eb
ステータス: nginx:latest の新しいイメージをダウンロードしました
docker.io/ライブラリ/nginx:最新

Server2が再びnginxをプルし、完了
2. ハーバーリポジトリの使用、基本的な手順

[root@server1 harbor]# docker-compose ログ

ログを表示

[root@server1 harbor]# docker-compose を停止します

倉庫を非アクティブ化する
3. 倉庫のメンテナンス(倉庫モジュールの追加:自動画像スキャン、署名機能)
まず倉庫を止めろ

[root@server1 ハーバー]# docker-compose rm

すべてのコンテナを削除します。次に、ハーバー機能を追加します。インストール スクリプトのヘルプを確認します。イメージ脆弱性スキャン、コンテンツの信頼、リモート ログインの 3 つのモジュールが表示されます。インストール スクリプトの後にモジュール名を追加します。再インストール後、これらのモジュール機能が有効になります。

[root@server1 ハーバー]# ./install.sh --help

注意: 最初に harbor.yml でホスト名とその他の必要な属性を設定してください。 Harbor は外部クライアントからアクセスする必要があるため、ホスト名には localhost または 127.0.0.1 を使用しないでください。
Harbor で Notary を有効にする必要がある場合は --with-notary を設定し、notary は https で実行する必要があるため、harbor.yml で ui_url_protocol/ssl_cert/ssl_cert_key を設定してください。 
HarborでClairを有効にする必要があるときは、--with-clairを設定してください。
HarborでChartmuseumを有効にする必要があるときは、--with-chartmuseumを設定してください。
[root@server1 harbor]# ./install.sh --with-notary --with-clair --with-chartmuseum
[ステップ5]: Harborを起動します...
デフォルトドライバーでネットワーク「harbor_harbor-clair」を作成しています
デフォルトドライバーでネットワーク「harbor_harbor-notary」を作成しています
デフォルトドライバーでネットワーク「harbor_harbor-chartmuseum」を作成しています
デフォルトドライバーでネットワーク「harbor_notary-sig」を作成しています
港ログを作成中...完了
レジストリを作成しています...完了
harbor-db を作成しています...完了
registryctl を作成しています...完了しました
redis を作成しています...完了
チャートミュージアムを作成中...完了
港湾ポータルを作成中...完了
ハーバーコアを作成中...完了
公証人署名者を作成しています...完了
クリアを作成中...完了
clair-adapter を作成しています...完了
公証サーバーを作成しています...完了
nginx を作成しています...完了
harbor-jobservice を作成しています...完了しました
✔ ----Harbor が正常にインストールされ、起動しました。----
[root@server1 ハーバー]# docker-compose ps
      名前 コマンド 状態 ポート                             
--------------------------------------------------------------------------------------------------------------------------------------------------------------
chartmuseum ./docker-entrypoint.sh 起動中 (正常性: 開始中) 9999/tcp                                                       
clair ./docker-entrypoint.sh 起動中 (正常性: 開始中) 6060/tcp、6061/tcp                                             
clair-adapter /clair-adapter/clair-adapter 稼働中 (正常性: 開始中) 8080/tcp                                                       
harbor-core /harbor/harbor_core アップ(体力:開始)                                                                  
harbor-db /docker-entrypoint.sh 起動中 (正常性: 開始中) 5432/tcp                                                       
harbor-jobservice /harbor/harbor_jobservice ... 稼働中 (ヘルス: 開始中)                                                                  
harbor-log /bin/sh -c /usr/local/bin/ ... 起動中 (正常性: 開始中) 127.0.0.1:1514->10514/tcp                                      
harbor-portal nginx -g デーモンオフ; 起動中 (正常性: 開始中) 8080/tcp                                                       
nginx nginx -g デーモンオフ; 起動中 (正常性: 開始中) 0.0.0.0:4443->4443/tcp,:::4443->4443/tcp,                      
                                                                             0.0.0.0:80->8080/tcp、:::80->8080/tcp、                          
                                                                             0.0.0.0:443->8443/tcp、:::443->8443/tcp                         
notary-server /bin/sh -c migrate-patch - ... 上へ                                                                                     
notary-signer /bin/sh -c migrate-patch - ... 上へ                                                                                     
redis redis-server /etc/redis.conf 起動中 (正常性: 開始中) 6379/tcp                                                       
レジストリ /home/harbor/entrypoint.sh アップ (ヘルス: 開始中) 5000/tcp                                                       
registryctl /home/harbor/start.sh 起動中 (正常性: 開始中)

psを使用して確認すると、172.25.250.11にログインするための機能がいくつか見つかります。

ここに画像の説明を挿入
ここに画像の説明を挿入

これらは再インストール前には存在しませんでした。

--公証人付き --クレア付き --チャート博物館付き
これらは、コンテンツの信頼性、イメージのスキャン、チャートのライブラリです。ブラウザでイメージ情報を表示すると、イメージの後にスキャン、署名などの情報が続いていることがわかります。このディレクトリを構成するときにイメージのスキャンと署名の機能が有効になっていないため、現在表示されているイメージはスキャンも署名もされていません。

ここに画像の説明を挿入

画像を自動的にスキャンするにはどうすればいいですか?

ここに画像の説明を挿入

「保存して再試行する」を選択して、画像を再度アップロードしてください

[root@server1 harbor]# docker tag rhel7:latest reg.westos.org/library/rhel7:latest

今回は、rhel7 イメージを使用して、最初に名前を変更します。

[root@server1 harbor]# docker push reg.westos.org/library/rhel7:latest 
プッシュはリポジトリ [reg.westos.org/library/rhel7] を参照します。
18af9eb19b5f: プッシュ 
最新: ダイジェスト: sha256:58cd9120a4194edb0de4377b71bd564953255a1422baa1bbd9cb23d521c6873b サイズ: 528

港にアップロード

ここに画像の説明を挿入

ブラウザを開くと、自動的にスキャンされていたことがわかりました。

画像署名機能を実装するにはどうすればいいですか?

ここに画像の説明を挿入

コンテンツの信頼が選択されたら、server2にアップロードしたばかりのrhel7イメージをプルしてみます。

[root@server2 ~]# docker pull rhel7
デフォルトタグの使用: 最新
デーモンからのエラー応答: rhel7 のプル アクセスが拒否されました。リポジトリが存在しないか、または 'docker login' が必要になる可能性があります: 拒否されました: リソースへの要求されたアクセスが拒否されました

コンテンツの信頼のチェックを外すと、リポジトリでコンテンツの信頼が有効になっているため、正常にプルできます。クライアントは署名されたイメージのみをダウンロードできますが、リポジトリ内の Debian イメージは署名されていません。そのため、クライアントはプルに失敗します。
ハーバーリポジトリのプルは失敗しましたが、システムは自動的にインターネットからイメージをプルします(現在オフライン環境なので、上記のエラーが発生します)

次に、信頼されたイメージの署名を承認する必要があります。まず、Web インターフェースで以前にアップロードしたイメージを削除します。署名のないイメージの場合は、Docker サーバーで 2 つの環境変数を設定します。次に、コンテンツ信頼機能を使用して、アップロードしたイメージに署名します。
(1)ルート証明書を導入する

[root@server1 ハーバー]# docker-compose ps
      名前 コマンド 状態 ポート                                  
--------------------------------------------------------------------------------------------------------------------------------------------------------------
chartmuseum ./docker-entrypoint.sh アップ(正常)9999/tcp                                                                
clair ./docker-entrypoint.sh 稼働中(正常)6060/tcp、6061/tcp                                                      
clair-adapter /clair-adapter/clair-adapter アップ(正常) 8080/tcp                                                                
harbor-core /harbor/harbor_core アップ(正常)                                                                           
harbor-db /docker-entrypoint.sh 稼働中(正常)5432/tcp                                                                
harbor-jobservice /harbor/harbor_jobservice ... 稼働中(正常)                                                                           
harbor-log /bin/sh -c /usr/local/bin/ ... 稼働中 (正常) 127.0.0.1:1514->10514/tcp                                               
harbor-portal nginx -g デーモンオフ; 稼働中(正常)8080/tcp                                                                
nginx nginx -g デーモンオフ; 稼働中 (正常) 0.0.0.0:4443->4443/tcp,:::4443->4443/tcp,                               
                                                                    0.0.0.0:80->8080/tcp、:::80->8080/tcp、                                   
                                                                    0.0.0.0:443->8443/tcp、:::443->8443/tcp                                  
notary-server /bin/sh -c migrate-patch - ... 上へ                                                                                     
notary-signer /bin/sh -c migrate-patch - ... 上へ                                                                                     
redis redis-server /etc/redis.conf アップ(正常)6379/tcp                                                                
レジストリ /home/harbor/entrypoint.sh アップ(正常) 5000/tcp                                                                
registryctl /home/harbor/start.sh 起動中(正常)

ポート4443は署名に使用されます

[root@server1 harbor]# エクスポート DOCKER_CONTENT_TRUST=1
[root@server1 harbor]# DOCKER_CONTENT_TRUST_SERVER=https://reg.westos.org:4443 をエクスポートします

(2)Dockerコンテンツの信頼を有効にする

[root@server1 harbor]# docker push reg.westos.org/library/nginx:latest
プッシュはリポジトリ [reg.westos.org/library/nginx] を参照します。
3bd8699f28ba: レイヤーが既に存在します 
1d3b68b6972f: レイヤーが既に存在します 
de1602ca36c9: レイヤーが既に存在します 
最新: ダイジェスト: sha256:5ea5a786e978abd8e6e0b6c0f37f7271be19c40d6b8247b1d9dae70c1fbab9eb サイズ: 949
信頼メタデータの署名とプッシュ
エラー: 公証サーバーへの接続エラー: x509: 証明書は不明な機関によって署名されています

更新されたバージョンであることを示す Latest を追加する必要があります。 (3) 再度アップロードする際にエラーが発生しました。隠しディレクトリ .docker に証明書がありません。証明書ディレクトリ tls を作成します。ディレクトリに入ったら、コンテナと同じ名前のディレクトリ reg.westos.org:4443 を作成します。
以前に生成した証明書をこのディレクトリにコピーします

[root@server1 ~]# cd .docker/
[root@server1 .docker]# ls
config.json 信頼
[root@server1 .docker]# mkdir tls
[root@server1 .docker]# cd tls/
[root@server1 tls]# mkdir reg.westos.org:4443
[root@server1 tls]# cd reg.westos.org\:4443/
[root@server1 reg.westos.org:4443]# cp /docker /
.autorelabel データ/ etc/ lib64/ opt/ run/ sys/ var/          
bin/ dev/ ホーム/ メディア/ proc/ sbin/ tmp/          
ブート/ docker lib/ mnt/ ルート/ srv/ usr/          
[root@server1 reg.westos.org:4443]# cp /root/data/certs/westos.org.crt ca.crt
[root@server1 reg.westos.org:4443]# ls
ca.crt

(4)もう一度アップロードしてみる

[root@server1 harbor]# docker push reg.westos.org/library/nginx:latest 
プッシュはリポジトリ [reg.westos.org/library/nginx] を参照します。
3bd8699f28ba: レイヤーが既に存在します 
1d3b68b6972f: レイヤーが既に存在します 
de1602ca36c9: レイヤーが既に存在します 
最新: ダイジェスト: sha256:5ea5a786e978abd8e6e0b6c0f37f7271be19c40d6b8247b1d9dae70c1fbab9eb サイズ: 949
信頼メタデータの署名とプッシュ
新しいルート署名キーのパスフレーズを作成しようとしています。このパスフレーズ
署名システムで最も機密性の高い鍵を保護するために使用されます。
長くて複雑なパスフレーズを選択し、パスワードと
キーファイル自体は安全でバックアップされています。
パスワードマネージャを使用してパスフレーズを生成し、安全に保管します。
このキーを回復する方法はありません。キーは config ディレクトリにあります。
ID dbac0cb の新しいルート キーのパスフレーズを入力してください: 
パスフレーズが短すぎます。パスワード マネージャーを使用して、適切なランダム パスフレーズを生成し、保存してください。
ID dbac0cb の新しいルート キーのパスフレーズを入力してください: 
パスフレーズが短すぎます。パスワード マネージャーを使用して、適切なランダム パスフレーズを生成し、保存してください。
ID dbac0cb の新しいルート キーのパスフレーズを入力してください: 
パスフレーズが短すぎます。パスワード マネージャーを使用して、適切なランダム パスフレーズを生成し、保存してください。
ID dbac0cb の新しいルート キーのパスフレーズを入力してください: 
パスフレーズが短すぎます。パスワード マネージャーを使用して、適切なランダム パスフレーズを生成し、保存してください。
ID dbac0cb の新しいルート キーのパスフレーズを入力してください: 
ID dbac0cb の新しいルート キーのパスフレーズを繰り返します。 
ID a868e96 の新しいリポジトリ キーのパスフレーズを入力してください: 
ID a868e96 の新しいリポジトリ キーのパスフレーズを繰り返します。 
「reg.westos.org/library/nginx」の初期化が完了しました
reg.westos.org/library/nginx:latest に正常に署名されました

問題を解決した後、サーバーはイメージを再度アップロードします。新しいイメージを正常にアップロードするには、管理者がルート キーとウェアハウス キーを設定する必要があります。
(異なるバージョンのイメージをアップロードするたびに、ルートキーではなく、対応するウェアハウスキーのみを入力する必要があることに注意してください)
設定後、Webインターフェースにアクセスして、アップロードした画像の署名が成功として表示されていることを確認します。

ここに画像の説明を挿入

署名済み、最新のものを追加する必要があります

[root@server2 ~]# docker pull nginx
デフォルトタグの使用: 最新
最新: library/nginx からプル
cfb92865f5ba: プル完了 
8dd350b5e0d5: プル完了 
15157df2751c: プル完了 
ダイジェスト: sha256:5ea5a786e978abd8e6e0b6c0f37f7271be19c40d6b8247b1d9dae70c1fbab9eb
ステータス: nginx:latest の新しいイメージをダウンロードしました
docker.io/ライブラリ/nginx:最新

server2 で署名済みイメージをプルしても問題はありません。署名されておらず、コンテンツの信頼が有効になっている場合は、それでも機能しません。もう一度実行可能性を試して、まず harbor から 2048 を削除し、次に server2 で以前にダウンロードした 2048 イメージを削除して、もう一度プルすると、エラーが報告されます。

[root@server2 ~]# docker pull game2048
デフォルトタグの使用: 最新
デーモンからのエラー応答: game2048 のプル アクセスが拒否されました。リポジトリが存在しないか、または 'docker login' が必要になる可能性があります: 拒否: リソースへの要求されたアクセスが拒否されました

その後、サーバー1は再び2048をプッシュします

[root@server1 harbor]# docker push reg.westos.org/library/game2048:latest 
プッシュはリポジトリ [reg.westos.org/library/game2048] を参照します。
88fca8ae768a: レイヤーが既に存在します 
6d7504772167: レイヤーが既に存在します 
192e9fad2abc: レイヤーが既に存在します 
36e9226e74f8: レイヤーが既に存在します 
011b303988d2: レイヤーが既に存在します 
最新: ダイジェスト: sha256:8a34fb9cb168c420604b6e5d32ca6d412cb0d533a826b313b190535c03fe9390 サイズ: 1364
信頼メタデータの署名とプッシュ
ID dbac0cb のルート キーのパスフレーズを入力してください: 
ID 18c8514 の新しいリポジトリ キーのパスフレーズを入力してください: 
ID 18c8514 の新しいリポジトリ キーのパスフレーズを繰り返します。 
「reg.westos.org/library/game2048」の初期化が完了しました
reg.westos.org/library/game2048:latest に正常に署名されました

ここに画像の説明を挿入

すでに署名済み、server2が再度プル

[root@server2 ~]# docker pull game2048
デフォルトタグの使用: 最新
最新: library/game2048 から取得
534e72e7cedc: プル完了 
f62e2f6dfeef: プル完了 
fe7db6293242: プル完了 
3f120f6a2bf8: プル完了 
4ba4e6930ea5: プル完了 
ダイジェスト: sha256:8a34fb9cb168c420604b6e5d32ca6d412cb0d533a826b313b190535c03fe9390
ステータス: game2048:latest の新しいイメージをダウンロードしました
docker.io/library/game2048:最新

終わり

4. ゲストユーザーが非公開のリポジトリにアクセスする
(1)新しいプロジェクトを作成する

ここに画像の説明を挿入

[root@server1 harbor]# エクスポート DOCKER_CONTENT_TRUST=0

コンテンツの信頼をオフにしてください。そうしないと、問題が発生します。

[root@server1 harbor]# docker タグ reg.westos.org/library/game2048:latest reg.westos.org/haoge/game2048:latest
[root@server1 harbor]# docker push reg.westos.org/haoge/game2048

新しいプロジェクトhaoge用の2048画像を再アップロードします

ここに画像の説明を挿入

[root@server2 ~]# docker pull reg.westos.org/haoge/game2048:latest
デーモンからのエラー応答: reg.westos.org/haoge/game2048 のプル アクセスが拒否されました。リポジトリが存在しないか、'docker login' が必要になる可能性があります: 拒否されました: リソースへの要求されたアクセスが拒否されました

Server2はhaogeから2048を取得し、エラーを報告し、ログインする必要がある

ここに画像の説明を挿入

新しいユーザーを作成する

ここに画像の説明を挿入

haogeプロジェクトでは、ユーザーにゲストIDを付与します

[root@server2 ~]# docker ログイン reg.westos.org
ユーザー名: wqh
パスワード: 
警告! パスワードは暗号化されずに /root/.docker/config.json に保存されます。
この警告を削除するには、資格情報ヘルパーを構成します。
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

ログインに成功しました

server2 ログイン wqh
もう一度引く

[root@server2 ~]# docker pull reg.westos.org/haoge/game2048:latest
最新: haoge/game2048 から取得
ダイジェスト: sha256:8a34fb9cb168c420604b6e5d32ca6d412cb0d533a826b313b190535c03fe9390
ステータス: reg.westos.org/haoge/game2048:latest の新しいイメージをダウンロードしました
reg.westos.org/haoge/game2048:最新
[root@server2 ~]# docker イメージ 
リポジトリ タグ イメージ ID 作成 サイズ
nginx 最新 2560dbd4ee1e 14 か月前 31.1MB
game2048 最新 19299002fdbe 4年前 55.5MB
reg.westos.org/haoge/game2048 最新 19299002fdbe 4年前 55.5MB

問題ありませんが、訪問者に権限がないためプッシュは許可されません。

ここに画像の説明を挿入

ログには、wqh がミラーをプルし、最終的に次のことが示されています。
ディスク消費を加速させる画像スキャン機能と署名機能を削除します(スキャンによりディスク消費が加速します)
(その後の実験では画像のスキャンと署名は必要ありません)

[root@server1 harbor]# docker-compose を停止します
harbor-jobservice を停止しています...完了
nginx を停止しています...完了
notary-server を停止しています...完了
clair-adapter を停止しています...完了
公証人署名者を停止しています...完了
クレアを止めています...完了
ハーバーコアを停止しています...完了
chartmuseum を停止しています...完了
港湾ポータルを停止しています...完了
redis を停止しています...完了
registryctl を停止しています...完了
harbor-db を停止しています...完了
レジストリを停止しています...完了
港湾ログを停止しています...完了
[root@server1 ハーバー]# docker-compose rm
harbor-jobservice、nginx、notary-server、clair-adapter、notary-signer、clair、harbor-core、chartmuseum、harbor-portal、redis、registryctl、harbor-db、registry、harbor-log を削除します。
本当にいいですか?[yN] y
harbor-jobservice を削除しています...完了
nginx を削除しています...完了
notary-server を削除しています...完了しました
clair-adapter を削除しています...完了
公証人署名者を削除しています...完了
クレアを削除しています...完了
ハーバーコアを削除しています...完了
chartmuseum を削除しています...完了
港湾ポータルを削除しています...完了
redis を削除しています...完了
registryctl を削除しています...完了しました
harbor-db を削除しています...完了
レジストリを削除しています...完了
港のログを削除しています...完了
[root@server1 harbor]# ./install.sh --with-chartmuseum 

[ステップ 0]: docker がインストールされているかどうかを確認しています...

注: docker バージョン: 19.03.15

[ステップ 1]: docker-compose がインストールされていることを確認します...

注: docker-compose バージョン: 1.27.0

[ステップ 2]: Harbor イメージを読み込んでいます...
読み込まれたイメージ: goharbor/clair-adapter-photon:v1.0.1-v1.10.1
読み込まれたイメージ: goharbor/harbor-jobservice:v1.10.1
読み込まれたイメージ: goharbor/redis-photon:v1.10.1
読み込まれたイメージ: goharbor/notary-server-photon:v0.6.1-v1.10.1
読み込まれた画像: goharbor/clair-photon:v2.1.1-v1.10.1
読み込まれたイメージ: goharbor/harbor-log:v1.10.1
読み込まれたイメージ: goharbor/registry-photon:v2.7.1-patch-2819-2553-v1.10.1
読み込まれたイメージ: goharbor/notary-signer-photon:v0.6.1-v1.10.1
読み込まれた画像: goharbor/chartmuseum-photon:v0.9.0-v1.10.1
読み込まれたイメージ: goharbor/harbor-registryctl:v1.10.1
読み込まれたイメージ: goharbor/nginx-photon:v1.10.1
読み込まれたイメージ: goharbor/harbor-migrator:v1.10.1
読み込まれたイメージ: goharbor/prepare:v1.10.1
読み込まれた画像: goharbor/harbor-portal:v1.10.1
読み込まれたイメージ: goharbor/harbor-core:v1.10.1
読み込まれたイメージ: goharbor/harbor-db:v1.10.1


[ステップ3]:環境の準備...

[ステップ 4]: 港の設定を準備する...
準備ベースディレクトリは/mnt/harborに設定されます
設定ファイルをクリアする: /config/log/logrotate.conf
設定ファイルをクリアする: /config/log/rsyslog_docker.conf
設定ファイルをクリアする: /config/nginx/conf.d/notary.upstream.conf
設定ファイルをクリアする: /config/nginx/conf.d/notary.server.conf
設定ファイルをクリアする: /config/nginx/nginx.conf
設定ファイルをクリアする: /config/core/env
設定ファイルをクリアする: /config/core/app.conf
設定ファイルをクリアする: /config/registry/config.yml
設定ファイルをクリアする: /config/registry/root.crt
設定ファイルをクリアする: /config/registryctl/env
設定ファイルをクリアする: /config/registryctl/config.yml
設定ファイルをクリアする: /config/db/env
設定ファイルをクリアする: /config/jobservice/env
設定ファイルをクリアする: /config/jobservice/config.yml
設定ファイルをクリアする: /config/notary/server-config.postgres.json
設定ファイルをクリアする: /config/notary/server_env
設定ファイルをクリアする: /config/notary/signer_env
設定ファイルをクリアする: /config/notary/signer-config.postgres.json
設定ファイルをクリアする: /config/notary/notary-signer.key
設定ファイルをクリアする: /config/notary/notary-signer.crt
設定ファイルをクリアする: /config/notary/notary-signer-ca.crt
設定ファイルをクリアする: /config/notary/root.crt
設定ファイルをクリアする: /config/clair/postgresql-init.d/README.md
設定ファイルをクリアする: /config/clair/postgres_env
設定ファイルをクリアする: /config/clair/config.yaml
設定ファイルをクリアする: /config/clair/clair_env
設定ファイルをクリアする: /config/clair-adapter/env
設定ファイルをクリアする: /config/chartserver/env
生成された設定ファイル: /config/log/logrotate.conf
生成された構成ファイル: /config/log/rsyslog_docker.conf
生成された設定ファイル: /config/nginx/nginx.conf
生成された設定ファイル: /config/core/env
生成された構成ファイル: /config/core/app.conf
生成された構成ファイル: /config/registry/config.yml
生成された設定ファイル: /config/registryctl/env
生成された構成ファイル: /config/db/env
生成された構成ファイル: /config/jobservice/env
生成された構成ファイル: /config/jobservice/config.yml
ファイルからシークレットをロードしました: /secret/keys/secretkey
生成された設定ファイル: /config/chartserver/env
生成された構成ファイル: /compose_location/docker-compose.yml
入力ディレクトリをクリーンアップする



[ステップ5]: Harborを起動します...
港ログを作成中...完了
港湾ポータルを作成中...完了
registryctl を作成しています...完了しました
harbor-db を作成しています...完了
redis を作成しています...完了
レジストリを作成しています...完了
チャートミュージアムを作成中...完了
ハーバーコアを作成中...完了
nginx を作成しています...完了
harbor-jobservice を作成しています...完了
✔ ----Harbor が正常にインストールされ、起動しました。----
[root@server1 ハーバー]# docker-compose ps
      名前 コマンド 状態 ポート                             
--------------------------------------------------------------------------------------------------------------------------------------------------------------
chartmuseum ./docker-entrypoint.sh 起動中 (正常性: 開始中) 9999/tcp                                                       
harbor-core /harbor/harbor_core アップ(体力:開始)                                                                  
harbor-db /docker-entrypoint.sh 起動中 (正常性: 開始中) 5432/tcp                                                       
harbor-jobservice /harbor/harbor_jobservice ... 稼働中 (ヘルス: 開始中)                                                                  
harbor-log /bin/sh -c /usr/local/bin/ ... 起動中 (正常性: 開始中) 127.0.0.1:1514->10514/tcp                                      
harbor-portal nginx -g デーモンオフ; 起動中 (正常性: 開始中) 8080/tcp                                                       
nginx nginx -g デーモン off; 起動中 (正常性: 開始中) 0.0.0.0:80->8080/tcp,:::80->8080/tcp,                          
                                                                             0.0.0.0:443->8443/tcp、:::443->8443/tcp                         
redis redis-server /etc/redis.conf 起動中 (正常性: 開始中) 6379/tcp                                                       
レジストリ /home/harbor/entrypoint.sh アップ (ヘルス: 開始中) 5000/tcp                                                       
registryctl /home/harbor/start.sh 起動中 (正常性: 開始中) 

ここに画像の説明を挿入

最終結果

上記はdocker5フル機能のハーバーの詳細な内容です。docker harborの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • HarborをベースにしたDockerプライベートイメージリポジトリの構築の詳細な説明
  • Docker はプライベート ウェアハウス (レジストリ、ハーバー) を構築します
  • DockerプライベートライブラリHarborのアーキテクチャとコンポーネントの説明
  • プライベートDockerリポジトリであるHarborをインストールするための詳細な手順
  • プライベートウェアハウス(レジストリとハーバー)を構築するためのDockerの実装
  • Docker で Harbor パブリック リポジトリを構築する方法の例
  • ドッカー専用倉庫港湾建設プロセス
  • Dockerがプライベート倉庫Harborを構築する手順
  • Docker Gitlab+Jenkins+Harborは永続的なプラットフォーム運用を構築します
  • Docker+K8S+GitLab/SVN+Jenkins+Harbor をベースにした継続的インテグレーション配信環境の構築に関する詳細なチュートリアル
  • Harborを使用してプライベートDockerリポジトリを構築する方法
  • docker compose を使用してハーバープライベートウェアハウスをインストールする詳細なチュートリアル
  • Jenkins は Docker イメージを構築し、Harbor ウェアハウスにプッシュします
  • HarborをベースにしたDocker専用倉庫の構築方法
  • Dockerプライベート倉庫Harborの導入と展開方法

<<:  Vueコンポーネント通信のさまざまな方法の詳細な説明

>>:  HTML およびプラグイン アプリケーションにおけるデータ カスタム属性の使用の概要

推薦する

MySQLにログインする際のエラー「ERROR 1045 (28000)」を解決する方法

今日はサーバーにログインして、データベース内のいくつかのものを変更する準備をしました。しかし、パスワ...

Momentsで写真を整理するためのCSSコード

まず、Moments を開いて、写真の数が異なるいくつかのレイアウトを確認するか、以下の例を参照して...

RR および RC 分離レベルでのインデックスとロックのテスト スクリプトのサンプル コード

基本概念現在の読み取りとスナップショットの読み取りMVCC では、読み取り操作はスナップショット読み...

JSを使用して画像を効果的に圧縮する方法

目次序文変換関係具体的な実装file2DataUrl(ファイル、コールバック) file2Image...

JavaScript 操作要素の例

操作要素の詳細については、前回の記事を参照してください。JavaScript WebAPI、DOM、...

MySQL ジョイントテーブルクエリの簡単な例

MySql は結合テーブルクエリを使用しますが、初心者には理解しにくい場合があります。以下の記事では...

TypeScript のマップされた型とより優れたリテラル型推論について説明します。

目次概要マップされた型を使用して Object.freeze() を構築するマッピングタイプの構文は...

JavaScript のマクロタスクとマイクロタスクの詳細

目次1. マイクロタスクとは何ですか? 2. マクロタスクとは何ですか? 3. 事例3.1 結論4....

SQL Server 2019 Always On クラスターの Docker デプロイメントの実装

目次Docker デプロイメント Always on クラスターDockerをインストールする建築関...

Linux コマンドを使用してオーディオ形式を変換および結合する方法

FFmpeg flacをインストールする eric@ray:~$ sudo apt install ...

css-loader を使用して vue-cli で css モジュールを実装する

【序文】 Vue と React の CSS モジュール ソリューションはどちらも、実装にローダーに...

JSは10進数を16進数に変換するサンプルコードを実装します

序文コードを書くと、時々基数変換の問題に遭遇します。一般的な変換には、2進数、8進数、10進数、16...

Dockerでudpポート番号を指定する問題を解決する

Docker はコンテナを起動するときにアクセス ポートを指定します。複数の -p オプションを使用...

Firebug ツールを使用して iPad でページをデバッグする

iPad でページをデバッグするにはどうすればいいですか? iOS 5 をご利用の場合、iPad の...

CSS3 タブアニメーションの例 背景切り替えの動的効果

CSS 3 アニメーションの例 - タブの背景切り替えの動的効果、具体的なコードは次のとおりです。 ...