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 ディレクティブのカスタム命令の詳細な説明

推薦する

MySQL インデックス データ構造の詳細な分析

目次概要インデックスデータ構造バイナリツリー赤黒木BツリーB+ツリーハッシュ索引InnoDB インデ...

MySQL で時刻と日付の型を保存する際の選択問題を分析する

一般的なアプリケーションでは、timestamp、datetime、int 型を使用して時間形式を保...

Dockerサーバーのストレージリソースプール不足問題の解決

目次1. 問題の説明2. 問題分析3. 問題解決1. Dockerのディスク使用量を確認する2. 再...

JQueryセレクターの詳細な説明

目次基本的なセレクター:レベルセレクター:属性セレクター:フィルターセレクター:フォーム属性セレクタ...

Linux lseek関数の使い方の詳しい説明

注:記事に誤りがある場合は、メッセージを残して指摘してください。ご協力ありがとうございます。名前名前...

MySQL の 4 つのトランザクション分離レベルを例を使って分析する

序文データベース操作では、同時データ読み取りの正確性を効果的に保証するために、トランザクション分離レ...

vue-cli で stimulsoft.reports.js を使用する詳細なチュートリアル

vue-cli は stimulsoft.reports.js を使用します (ナニーレベルのチュー...

Webデザインチュートリアル(2):模倣と盗作について

<br />前回の記事では、Webデザインの手順と方法を紹介しました。詳細については、前...

Linux環境にRedisをデプロイし、Dockerにインストールする方法

インストール手順1. Redisをインストールするdocker search redis和docke...

VMware 15 を使用して仮想マシンをインストールし、CentOS 8 を使用する詳細な手順

序文:現在、Linux と .Net Core を学習しており、クロスプラットフォームの知識を学んで...

背景画像にテキストを表示するためのCSS

効果: <div class="imgs"> <!-- 背景画...

jQueryメソッド属性の詳細な説明

目次1. jQueryの紹介2. jQueryセレクター2.1 5つの基本セレクタ2.2 4種類の関...

Linux でログインタイムアウト後に非アクティブなユーザーを自動的にログアウトする

方法1: .bashrcまたは.bash_profileファイルを変更するこれは、ホーム ディレクト...

Ubuntu の空き容量を増やす 5 つの簡単な方法

序文ほとんどの人は、システム ディスク ストレージが少ないときにこの操作を実行するか、Linux シ...

Nginx コンテンツ キャッシュと共通パラメータ設定の詳細

使用シナリオ:プロジェクトのページでは、頻繁に変更されず、個別のカスタマイズも伴わない大量のデータを...