港 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 の公式サイトで検索して、対応するバージョンを見つけることもできます。ここではこれ以上のスクリーンショットは撮りません! [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 をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQL OOM (メモリオーバーフロー) の解決策
>>: Vue.js ディレクティブのカスタム命令の詳細な説明
この記事では、簡単なドラッグ効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...
この記事では、例を使用して、MySQL 外部キー制約の一般的な操作について説明します。ご参考までに、...
目次1. v-for: 配列の内容を走査する(よく使われる) 2. v-for: オブジェクトのプロ...
目次コンポーネント設計最終的なコンポーネントAPIの定義コンポーネント構造の定義テンプレートとスタイ...
Mysqlトランザクション操作の失敗を解決する方法トランザクションの原子性: トランザクションは、デ...
序文同社の Ubuntu サーバーは、さまざまなシステムのディレクトリを異なる論理パーティションに配...
ネイティブJavaScriptを使用してカウントダウンを簡単に実装します。参考までに、具体的な内容は...
メタタグは、HTML言語のヘッド領域にある補助タグです。HTML文書のヘッダーにあるヘッドタグとタイ...
例示するシステムを自分でインストールする場合は、通常、システム言語をカスタマイズできます。ただし、ク...
すべてのオーケストレーション ファイルと構成ファイルは、私の Github からアクセスできます。構...
学習目標: Windowsシステムを使用してMySQLデータベースをインストールする方法を学びます。...
テーブル ヘッダーが固定されている場合は、それを 2 つのテーブルに分割する必要があります。1 つの...
リンクのターゲット属性は、リンクが開く場所を決定します。その値は通常、_blank、_self、_p...
基本的な構文text-overflow を使用するには、hight、over-flow:hidden...
1. Dockerをインストールするyum -y install docker-ioインストールが完...