HarborをベースにしたDocker専用倉庫の構築方法

HarborをベースにしたDocker専用倉庫の構築方法

1. ハーバーの紹介

イメージベースのレプリケーション戦略。VPN ドメイン接続を介して使用される LDAP/AD ドメインのサポート。イメージの削除とガベージ コレクション。イメージ UI は便利。監査。この機能はほとんど使用されず、ELK は一般的に企業でログの収集と分析に使用されます。RESTful API。

1. ハーバーが民間倉庫を建設

1. dock-composeをアップロードし、権限を設定する

[root@harbor ~]# cd /usr/local/bin/
[root@harbor bin]# rz -e
[root@harbor bin]# ls
docker-compose
[root@harbor bin]# chmod +x docker-compose

3. harbor-offline-installer-v1.2.2をインストールする

[root@harbor bin]# cd /usr/local/
[ルート@ハーバー ローカル]# rz -e
[root@harbor local]# tar zxvf harbor-offline-installer-v1.2.2.tgz

4. Harboパラメータファイルを構成する

[root@harbor local]# vim /usr/local/harbor/harbor.cfg 
 
#5行目を修正 hostname = 192.168.29.77

5. スタートハーバー

[root@harbor local]# cd /usr/local/harbor/
[root@harbor harbor]# ls
[root@harbor harbor]# sh install.sh

6. Harborの起動イメージとコンテナを表示する

(1)画像を見る

Docker イメージ

(2)サービスコンテナが有効になっているか確認する

cd /usr/local/harbor/
docker-compose ps

7. UIインターフェースでプロジェクトを作成する

ブラウザを使用して http://192.168.32.15 にアクセスします。デフォルトの管理者のユーザー名とパスワードは admin/Harbor12345 です。

ログイン後のインターフェース:

アイテムを追加

8. 倉庫機能をローカルでテストする

この時点で、Docker コマンドを使用してログインし、127.0.0.1 経由でローカルにイメージをプッシュできます。デフォルトでは、レジスター サーバーはポート 80 でリッスンします。

(1)ローカルプライベート倉庫にログイン

docker ログイン -u admin -p Harbor12345 http://127.0.0.1

(2)テスト用の画像をダウンロードする

docker プル nginx

(3)画像のラベル付け

docker タグ nginx 127.0.0.1/test_items/centos:nginx_v1
Docker イメージ

(4)画像をHarborにアップロードする

docker push 127.0.0.1/test_items/centos:nginx_v1

9. クライアントで画像をアップロードする

上記の操作はすべて Harbor サーバー上でローカルに実行されます。他のクライアントが Harbor に画像をアップロードすると、次のエラーが報告されます。この問題の原因は、Docker Registry のやり取りではデフォルトで HTTPS が使用されるのに対し、プライベート イメージをビルドする際にはデフォルトで HTTP サービスが使用されるため、プライベート イメージとやり取りする際に次のエラーが発生するためです。

(1)エラー現象

docker ログイン -u admin -p Harbor12345 http://192.168.29.77

(2)解決策

vim /usr/lib/systemd/system/docker.service
#コンテンツを変更します...
ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.29.33 --containerd=/run/containerd/containerd.sock
......
 
#サービスを再起動します systemctl daemon-reload
systemctl dockerを再起動します
 
#再度ログイン docker login -u admin -p Harbor12345 http://192.168.29.33

(3)画像をアップロードする

#Tomcatイメージをダウンロードする docker pull tomcat
Docker イメージ
# docker タグ tomcat 192.168.32.15/test_items/centos:tomcat_v1
#ローカルウェアハウスにアップロード docker push 192.168.32.15/test_items/centos:tomcat_v1

3. 港湾の維持管理

Harbor は docker-compose を使用して Harbor を管理できます。以下にいくつかの便利なコマンドを示します。これらは docker-compose.yml と同じディレクトリで実行する必要があります。

Harbor.cfg 構成ファイルで必要なオプションを変更するには: Harbor の構成ファイルを変更するには、まず既存の Harbor インスタンスを停止し、Harbor.cfg を更新します。次に、準備スクリプトを実行して構成を入力し、最後に Harbor インスタンスを再作成して起動します。

1.既存のHarborインスタンスを停止する

cd /usr/local/harbor/
docker-compose ダウン -v

2. 設定ファイルHarbor.cfgを変更する

cd /usr/local/harbor/
vim ハーバー.cfg

3. 準備スクリプトを実行して構成を設定します

cd /usr/local/harbor/
。/準備する

4. サービスを再起動する

cd /usr/local/harbor/
docker-compose を起動 -d

4. Harborユーザーを作成する

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

2. クライアント上で操作して、以前にタグ付けした画像を削除します。

docker rmi 192.168.29.77/test_items/centos:tomcat_v1

3. 新しく作成したユーザーが使用できるかどうかをテストする

#ログアウト docker logout 192.168.29.77
#新しく作成したユーザーとパスワードを使用して、プライベートウェアハウス docker login 192.168.29.77 にログインします。
ユーザー名: zhangsan
パスワード: #パスワードを入力#画像を表示(ダウンロード前)
Docker イメージ
#プライベートウェアハウスからイメージをダウンロード docker pull 192.168.29.77/test_items/centos:nginx_v1
#画像を見る(ダウンロード後)
Docker イメージ

4. Harborサービスコンテナとすべてのデータを削除します

画像データ/データベースを保持したままHarborサービスコンテナを削除する

1) Harborサーバーでの操作

cd /usr/local/harbor/
docker-compose ダウン -v

(2)再デプロイが必要な場合は、画像などの永続データを含むHarborサービスコンテナ内のすべてのデータを削除する必要があります。データベースはホスト マシンの /data/ ディレクトリにあり、ログはホスト マシンの /var/log/Harbor/ ディレクトリにあります。

Harbor で docker プライベート リポジトリを構築する方法についての記事はこれで終わりです。Harbor docker プライベート リポジトリに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Harbor がプライベート画像ウェアハウス環境とサービス展開例を視覚化
  • Harborを使用してプライベートDockerリポジトリを構築する方法
  • HarborをベースにしたDockerプライベートイメージリポジトリの構築の詳細な説明
  • Harborの高可用性構成とウェアハウスの使用法の概要

<<:  haslaylout と bfc 解析の理解

>>:  HTML 編集の基礎 (初心者必読)

推薦する

Dockerのデフォルトネットワークセグメントの正しい変更手順

背景同僚がセキュリティ プロジェクトに取り組んでおり、AWS サーバーに秘密兵器を展開する必要があり...

Vueは、サイドナビゲーションバーをタブページに関連付けるサンプルコードを実装します。

目次テクノロジースタック効果分析するテクノロジースタックサイドバー用Antdtabは要素を使用します...

MySQL 5.7.9 シャットダウン構文例の詳細な説明

mysql-5.7.9 では、ついにシャットダウン構文が提供されます。以前は、MySQL データベー...

MySQL 最適化戦略 (推奨)

要約すれば: 1. データベースの設計とテーブルの作成時にパフォーマンスを考慮する2. SQLの記述...

Centos8 (最小インストール) Python3.8+pip のインストール方法に関するチュートリアル

Python8のインストールを最小化した後、Python3.8.1をインストールしました。オンライン...

HTML 5のドラフトは正式な標準にはならなかった

<br />昨日、W3C で新しいHTML 5 ドラフト (ワーキング ドラフト) が ...

ChromeとIEに対応したWMPに埋め込まれたHTMLの詳細な紹介

実際には、対応する記述方法は多数ありますが、最も一般的なのは object + embedded で...

自動ロック画面機能を実現するjs

1. 使用シナリオこのような要件があるため、システムが開発されました。ユーザーがデスクトップを離れ...

MySQL 5.5 で範囲パーティションを追加および削除する例

導入RANGE パーティション分割は、指定された連続した間隔範囲に基づいています。RANGE の初期...

ウェブページのエンコードにおける GB2312、GBK、UTF-8 の違い

まず、GB2312、GBK、UTF-8 はすべて文字エンコーディングであることを理解する必要がありま...

CSS レイアウト チュートリアル: 垂直方向の中央揃えを実現する方法

序文最近、フロントエンドの知識をまとめており、いくつかのインタビューにも参加しました。インタビュー中...

JDKネイティブスレッドプールのバグを修正するTomcatの実装原理

処理能力と同時実行性を向上させるために、Web コンテナは通常、リクエストを処理するタスクをスレッド...

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

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

複数のフィールドを変更するためのMysql更新の構文の詳細な分析

MySQL でレコードを更新すると、構文は正しいのですが、レコードが更新されません...質問文実行前...