Dockerがプライベート倉庫Harborを構築する手順

Dockerがプライベート倉庫Harborを構築する手順

Harborは、エンタープライズレベルのプライベートDockerイメージリポジトリを構築するためのオープンソースソリューションです。これは、Dockerレジストリのより高度なカプセル化です。使いやすいWeb UIインターフェイス、ロールとユーザーの権限管理、ユーザー操作の監査などの機能に加えて、K8sプラグイン(アドオン)リポジトリも統合しています。つまり、Helmはチャートを介してK8sプラグインをダウンロード、管理、インストールし、chartmuseumはチャートデータを保存するためのウェアハウスを提供できます[注:helmはk8sのyumに相当します]。さらに、2 つのオープンソース セキュリティ コンポーネントも統合されています。1 つは Notary、もう 1 つは Clair です。Notary はプライベート CA センターに似ていますが、Clair はコンテナ セキュリティ スキャン ツールです。大手メーカーが提供する CVE 脆弱性ライブラリを通じて最新の脆弱性情報を取得し、ユーザーがアップロードしたコンテナをスキャンして既知の脆弱性情報を探します。この 2 つのセキュリティ機能は、エンタープライズ レベルのプライベート リポジトリにとって非常に有意義です。

1. ハーバーのプライベート倉庫を建設する

Registry プライベート ウェアハウスと比較すると、Harbor プライベート ウェアハウスははるかに強力で、Web グラフィカル管理をサポートしているため、企業で非常に人気があります。

1) ケースの説明

2 つの Docker サーバー、dockerA は Harbor プライベート ウェアハウスを作成し、dockerB はテストに使用されます。






1. DockerAサーバーの運用

[root@dockerA ~]# yum -y yum-utils デバイスマッパー永続データ lvm2 をインストールします
//docker-compose ツールに必要な依存関係をダウンロードします (docker 環境をデプロイするときにインストールできます)
[root@dockerA ~]# curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
//docker-compose ツールをダウンロードします [root@dockerA ~]# chmod +x /usr/local/bin/docker-compose
[root@dockerA ~]# docker-compose -v      
docker-compose バージョン 1.25.0、ビルド 0a186604
//docker-compose ツールのバージョン情報をチェックして、正常にインストールされていることを確認します

Harbor を構成する

GitHub の公式サイトで検索して、対応するバージョンを見つけることもできます。ここではこれ以上のスクリーンショットは撮りません!
URL: https://github.com/goharbor/harbor/releases
図に示すように:

[root@dockerA ~]# wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.4.tgz
// harbor ソフトウェア パッケージをダウンロード [root@dockerA ~]# tar zxf harbor-offline-installer-v1.7.0.tgz -C /usr/local
[root@dockerA ~]# cd /usr/local/harbor/
[root@dockerA harbor]# vim harbor.cfg 
//設定ファイルを書き込みます。他のバージョンはデフォルトでcfgで終わりますが、このバージョンはymlで終わります。ファイルの内容は同じです。hostname=192.168.45.129 //ローカルIPアドレスに変更します。harbor_admin_password: Harbor12345    
//この行はすでに存在します。自分で入力する必要はありません。ユーザー名とパスワードを覚えておいてください。必要に応じて変更できます。[root@dockerA harbor]# ./install.sh //インストール スクリプトを実行します

[root@dockerA ハーバー]# vim /usr/lib/systemd/system/docker.service 
//docker メイン設定ファイルを書き込む ExecStart=/usr/bin/dockerd --insecure-registry 192.168.45.129
 //レジストリと同様に、ポート番号は harbor 構成ファイルには入力されていないため、ここで追加できます。そうしないと、エラーが発生する可能性があります [root@dockerA harbor]# systemctl daemon-reload 
[root@dockerA harbor]# systemctl restart docker //docker サービスを再起動します [root@dockerA harbor]# pwd
/usr/local/harbor //ディレクトリに注意してください。このディレクトリ内にある必要があります [root@dockerA harbor]# docker-compose start
//docker-compose ツールを使用してすべてのコンテナを起動します (docker を再起動するとすべてのコンテナが閉じられるため)
[root@dockerA harbor]# netstat -anpt | grep 80 //ポート80がtcp6 0 0 :::80 :::* LISTEN 22871/docker-proxyでリッスンしていることを確認します

クライアントは次の Web ページにアクセスします。





画像をアップロード

倉庫が構築できたら、dockerA(harbor)サーバーにイメージをアップロードしてください。
[root@dockerA ハーバー]# docker ログイン -u admin -p Harbor12345 192.168.45.129 
// ログインするには、ユーザー名、パスワード、ハーバー サーバー アドレスを指定します。警告! CLI 経由で --password を使用することは安全ではありません。--password-stdin を使用してください。
警告! パスワードは暗号化されずに /root/.docker/config.json に保存されます。
この警告を削除するには、資格情報ヘルパーを構成します。
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
[root@dockerA ~]# docker tag centos:7 192.168.45.129/test/centos:7
// イメージ名を変更する必要があります。test は先ほど作成したウェアハウスの名前です [root@dockerA ~]# docker push 192.168.45.129/test/centos:7
// ハーバーサーバーのテストリポジトリにイメージをアップロードします

アップロードが完了すると、図のようになります。

2. dockerBサーバーでダウンロードイメージをテストする

[root@dockerB ~]# vim /usr/lib/systemd/system/docker.service 
//docker 13 のメイン設定ファイルを書き込みます ExecStart=/usr/bin/dockerd --insecure-registry 192.168.45.129
//ハーバーサーバーのIPアドレスを指定 [root@dockerB ~]# systemctl daemon-reload 
[root@dockerB ~]# systemctl restart docker //docker サービスを再起動します [root@dockerB ~]# docker login -u admin -p Harbor12345 192.168.45.129
// ハーバー サーバーにログインします。警告! CLI 経由で --password を使用することは安全ではありません。--password-stdin を使用してください。
警告! パスワードは暗号化されずに /root/.docker/config.json に保存されます。
この警告を削除するには、資格情報ヘルパーを構成します。
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

ログイン成功 //ログイン成功[root@dockerB ~]# docker pull 192.168.45.129/test/centos:7
//テスト用のイメージをダウンロード [root@dockerB ~]# docker images
リポジトリ タグ イメージ ID 作成 サイズ
192.168.45.129/test/centos 7 b5b4d78bc90c 2か月前 203MB

これで、Docker でプライベート倉庫 Harbor を構築する手順についての記事は終了です。Docker でプライベート倉庫 Harbor を構築する方法についての詳細は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • ミラーリポジトリである Harbor の設定と使用に関するチュートリアル
  • HarborをベースにしたDockerプライベートイメージリポジトリの構築の詳細な説明
  • Dockerプライベート倉庫Harborの導入と展開方法
  • ドッカー専用倉庫港湾建設プロセス
  • プライベートウェアハウス(レジストリとハーバー)を構築するためのDockerの実装
  • Harbor がプライベート画像ウェアハウス環境とサービス展開例を視覚化

<<:  MySQL OOM (メモリオーバーフロー) の解決策

>>:  Vue.js ディレクティブのカスタム命令の詳細な説明

推薦する

Nginx ロードバランシング クラスタの実装

(1)実験環境youxi1 192.168.5.101 ロードバランサーyouxi2 192.168...

Trash-Cli: Linux のコマンドラインごみ箱ツール

ゴミ箱は Linux ユーザー、Windows ユーザー、Mac ユーザーにとって非常に一般的なので...

WeChatアプレットがフォーム検証を実装

WeChatアプレットフォームの検証、参考までに具体的な内容は次のとおりです。プラグインWxVali...

Linux で PHP を 5.6 にアップグレードする実用的な方法

1: ターミナルに入ったらPHPのバージョンを確認する php -v出力は次のようになります。 PH...

MySQL シリーズ 11 ログ

チュートリアルシリーズMySQL シリーズ: MySQL リレーショナル データベースの基本概念My...

jsでシンプルなパズルゲームを実現する

この記事では、簡単なパズルゲームを実装するためのjsの具体的なコードを参考までに共有します。具体的な...

MySQLとOracleの誤解の詳細な説明

目次本質的な違いデータベースセキュリティ権限スキーマの移行パターンオブジェクトの類似性スキーマオブジ...

MySQL パスワードは正しいが、ローカルにログインできない -1045

MySQLパスワードは正しいが、ローカルでログインできない -1045 ユーザー 'roo...

各 Nginx プロセスで開くことができるファイルの最大数を設定する方法

1. システム内で開いているファイルの最大数を確認する #現在のリソース制限設定を表示する ulim...

Dockerカスタムネットワークの詳細な紹介

目次Dockerカスタムネットワーク1. カスタムネットワークの紹介2. カスタムネットワークを作成...

...

Windows10 mysql 8.0.12 非インストール版 設定 起動方法

この記事では、MySQL 8.0.12のインストールされていないバージョンを設定して起動するための具...

MySQLデータベースのnullに関する知識ポイントのまとめ

MySQL データベースでは、null は一般的な状況です。MySQL での null に関する注意...

Linux における SUID、SGID、SBIT の素晴らしい使い方の詳細な説明

序文Linux のファイル権限管理はとにかく素晴らしいです。SUID、SGID、SBIT の機能を確...

WeChatミニプログラムは同時通訳を利用して音声認識を実装します

私は同時通訳音声認識機能を使用して、WeChatアプレットのホームページの音声検索機能を実現しました...