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 編集の基礎 (初心者必読)

推薦する

Mysql一時テーブルの原理と作成方法の分析

この記事は主にMysql一時テーブルの原理と作成方法を紹介します。この記事のサンプルコードは非常に詳...

MySQLで自動作成時間と変更時間を設定する方法の例

この記事では、MySQL の自動作成時刻と変更時刻を設定する方法について説明します。ご参考までに、詳...

Nginx セッション共有問題の解決策の分析

この記事は主に、Nginx セッション共有の問題に対する解決策を紹介します。記事内のサンプル コード...

Vue Element フロントエンドアプリケーション開発: Vuex での API ストアビューの使用

目次概要1. フロントエンドとバックエンドの分離とWeb APIの優先ルート設計2. Axiosネッ...

H5でクリックされたときにaタグの背景色をキャンセルする方法

1. モバイル端末でクリックされたときにタグの青色を解除する { -webkit-tap-highl...

Docker /var/lib/docker/aufs/mnt ディレクトリのクリーニング方法

会社のサービスはdockerを使用しており、ディスクマンが見つかりました。その後、次のコマンドを実行...

Vuex データの永続性を実装するためのアイデアとコード

vuexとはvuex: vue.js専用に開発された状態管理ツールで、すべてのコンポーネントの状態を...

インストールされていないバージョンの MySQL を使用する手順とパスワードを忘れた場合の解決策

最初のステップは、圧縮されたパッケージを対応するディスクに解凍することです。 2 番目の手順は、cm...

CSS クロスブラウザ スタイルのバグのデバッグについて

まず最初に、適切なブラウザを選択します。私が Chrome を選択したのは、その強力なデバッグ ツー...

超シンプルな QPS 統計手法 (推奨)

過去 N 秒間の QPS 値の統計 (1 秒あたりの選択、挿入などを含む) mysql> se...

mycat を使用して MySQL データベースの読み取りと書き込みの分離を実装する例

MyCATとはエンタープライズアプリケーション開発のための完全にオープンソースの大規模データベースク...

CSSポジションの5つの異なる値の使い方の詳細な説明

位置プロパティposition プロパティは、要素に使用する配置方法のタイプ (静的、相対的、固定、...

Vueプロジェクトでのトークン検証ログイン(フロントエンド部分)

この記事の例では、Vueプロジェクトでのトークン検証ログインの具体的なコードを参考までに共有していま...

Docker Compose ネットワーク設定の説明

基本概念デフォルトでは、Compose はアプリケーション用のネットワークを作成し、サービスの各コン...

小さなプログラムが天井に張り付いてしまう問題を完璧に解決するためにposition:stickyを使用する方法

最近、あるプロジェクトのクライアントが、上部に 2 つのタブ メニューを配置することを要求しました。...