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

推薦する

CSS の position 属性の値に関する研究 (概要)

CSS の位​​置属性は要素の配置タイプを指定し、上、下、左、右を使用して要素を具体的に配置します...

MySQL GTID の総合概要

目次01 GTIDの紹介02 GTIDの仕組み03 GTIDの利点と欠点04 テスト環境構築05 テ...

MySQLが基礎データ構造としてB+ツリーを使用する理由

MySQL の基盤となるデータ構造が B+ ツリーであることは誰もが知っていますが、ではなぜ赤黒ツリ...

Mysqlリモート接続構成を実装する2つの方法

Mysqlリモート接続構成を実装する2つの方法会社で働いていると、誰かのコンピュータに保存されている...

Dockerイメージ作成の完全なプロセス

目次序文作成手順CentOSベースイメージを作成するコンテナを作成してカスタマイズするカスタムコンテ...

Windows 64 ビットでの MySQL 8.0.13 のインストールと設定方法のグラフィック チュートリアル

この記事では、MySQL 8.0.13のインストールと設定のチュートリアルを参考までに紹介します。具...

Vueはv-modelを使用してel-paginationコンポーネントのプロセス全体をカプセル化します。

v-model を使用してページング情報オブジェクトをバインドします。ページング情報オブジェクトに...

HTMLからPDFへのスクリーンショット保存機能の実装

テクノロジーの活用itext.jar: バイト ファイル入力ストリームを画像、PDF などに変換しま...

VirtualBox に CentOS、JDK、Hadoop をインストールする詳細なチュートリアル

目次1. 前提条件1.1 サポートされているプラ​​ットフォーム1.2 jdk および hadoop...

Ubuntu 18.04 のすべての Python ライブラリを一度にアップグレードする方法

ピップとは何かpip は、Python パッケージの検索、ダウンロード、インストール、アンインストー...

Vueの最初のレンダリングのプロセス全体についての簡単な説明

目次1. Vueの初期化vue エントリ ファイルフルバージョンとランタイムバージョンの違い1.1、...

vue-cli を使用してプロジェクトを作成し、webpack でパッケージ化する方法

1. 環境を準備する(Node.jsをダウンロードし、環境変数を設定する) 2. vue-cliをグ...

Docker実践: Pythonアプリケーションのコンテナ化

1. はじめにコンテナはサンドボックス メカニズムを使用して相互に分離します。コンテナ内にデプロイさ...

Docker View プロセス、メモリ、カップ消費量

Docker プロセス、メモリ、カップ消費量を表示dockerコンテナを起動し、dockerinsp...

MySQL 8.0の落とし穴の詳細な説明

本日、MySQL 8.0 をアップデートしました。最初の問題: Navicatがデータベースに接続で...