Harborを使用してプライベートDockerリポジトリを構築する方法

Harborを使用してプライベートDockerリポジトリを構築する方法

1. オープンソースの倉庫管理ツール Harbor

HarborCNCFがホストするオープンソースのDockerイメージ リポジトリ管理ツールです。これを使用して、独自のプライベート リポジトリをすばやく構築できます。もちろん、 Dockerが公式に提供しているregistryイメージやNexusなど、プライベートウェアハウスを構築するための選択肢は数多くあります。しかし、 Harborは依然として良い選択です。

2 インストール

Harborをインストールする方法は、コマンドラインからのインストール、 Helmによるインストールなど、多数あります。この記事では、コマンドラインからのスクリプトによるインストールについて説明します。

2.1 DockerとDocker-composeをインストールする

まず、 Dockerをインストールする必要があります。Harbor Harbor一連のコンテナを通じて起動されます。さらに、 docker-composeをインストールする必要があり、バージョンには特定の要件があります。ここでは、 Rancherリソース ライブラリでソフトウェア パッケージを見つけて構成できます。

Docker-composeをインストールします:

http://rancher-mirror.cnrancher.com/docker-compose/v1.27.4/docker-compose-Linux-x86_64 で実行します。
docker-compose を実行します。
chmod a+x /usr/local/bin/docker-compose

2.2 Harborをインストールする

2.2.1 ダウンロードと解凍

まず、GitHub Release にアクセスして、対応するパッケージをダウンロードします。 offlineonline 2 種類があります。 offlineサイズが大きく、対応する依存関係が含まれています。 online対応する依存コンポーネントが含まれていないため、インストール時にダウンロードする必要があります。 Githubからのダウンロードはそれほど高速ではない可能性があるため、ここではonlineパッケージが使用されます。

ダウンロード:

https://github.com/goharbor/harbor/releases/download/v2.1.1/harbor-online-installer-v2.1.1.tgz をダウンロードしてください

解凍:

tar zxvf ハーバーオンラインインストーラーv2.1.1.tgz

2.2.2 設定とインストール

設定ファイルを準備します。

cp harbor.yml.tmpl harbor.yml

設定を変更します: vi harbor.yml 、主にhttpsを削除し、サーバー アドレスとパスワードを構成します。主な構成は次のとおりです。

ホスト名: 8.134.18.166
http:
  ポート: 8088
# https 関連の設定
#https:
  # ハーバーの https ポート、デフォルトは 443
  # ポート: 443
  # nginx の証明書とキーファイルのパス
  #証明書: /your/certificate/path
  #private_key: /あなたの/private/key/パス
ハーバー管理者パスワード: Harbor12345

設定を変更したら、インストールを開始します。

./install.sh

インストールが成功するとプロンプトが表示されます。

3. 使いやすい

3.1 管理者権限を持つユーザーを作成する

ログインするには、 http://8.134.18.166:8088/ ://8.134.18.166:8088/ にアクセスしてください。ユーザー名はadminで、デフォルトのパスワードはHarbor12345です。

管理ユーザーadminの権限が高すぎます。通常のユーザーを作成するには:

ユーザー情報を作成します:

3.2 新規ユーザーがプロジェクトを作成する

adminを終了し、新しく作成したユーザーでログインし、イメージを保存するプロジェクトを作成します。

プロジェクトが正常に作成されました:

3.3 Docker接続ウェアハウス

3.3.1 Dockerの設定を変更して再起動する

dockerを搭載したマシンでdaemon.jsonを設定し、 "insecure-registries": ["http://8.134.18.166:8088"],

:vi /etc/docker/daemon.json を編集します。

設定後の内容は以下のとおりです。

{
  "安全でないレジストリ": ["http://8.134.18.166:8088"],
  "レジストリミラー": ["https://xxx.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "ログドライバー": "json ファイル",
  「ログオプション」: {
    "最大サイズ": "100m"
  },
  "ストレージ ドライバー": "overlay2"
}

Dockerを再起動します:

systemctl dockerを再起動します

3.3.2 ログインしてイメージをプッシュする

新しく作成された倉庫にログインします。

$ docker ログイン http://8.134.18.166:8088 --username pkslow --password Pk123456
警告! CLI 経由で --password を使用することは安全ではありません。--password-stdin を使用してください。
警告! パスワードは暗号化されずに /root/.docker/config.json に保存されます。
この警告を削除するには、資格情報ヘルパーを構成します。
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

ログインに成功しました

画像の 1 つにtag

docker タグ nginx 8.134.18.166:8088/pkslow/nginx:latest

リポジトリにイメージをアップロードします。

$ docker push 8.134.18.166:8088/pkslow/nginx:latest
プッシュはリポジトリ [8.134.18.166:8088/pkslow/nginx] を参照します
cdd1d8ebeb06: プッシュ 
fe08d9d9f185: プッシュ 
280ddd108a0a: プッシュ 
f14cffae5c1a: プッシュ 
d0fe97fa8b8c: プッシュ 
最新: ダイジェスト: sha256:4949aa7259aa6f827450207db5ad94cabaa9248277c6d736d5e1975d200c7e43 サイズ: 1362

ウェブページにアクセスして確認してください。対応するミラーがすでに存在します。

引っ張る動作は実演されません。

Harborを使用してプライベートDockerリポジトリを構築する方法についての記事はこれで終わりです。Harborを使用してプライベートDockerリポジトリを構築する方法の詳細については、123WORDPRESS.COMの以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

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

<<:  Vue3 Vue CLI マルチ環境設定

>>:  MySQL 整合性制約の定義と例のチュートリアル

推薦する

最新のウェブフロントエンドフレームワーク10選を紹介(翻訳)

Web 開発の世界では、フレームワークは非常に一般的です。新しいフレームワークやテンプレートが毎日の...

SSHを使用してDockerサーバーに接続する方法

初めて docker に触れたときは本当に戸惑いました。初心者向けのチュートリアルを長い間読みました...

MySQLシリーズ マルチテーブル結合クエリ92および99構文例詳細チュートリアル

目次1. デカルト積現象2. 接続クエリの知識ポイントのまとめ1) 結合クエリとは何ですか? 2) ...

Tomcat でのサーブレットの作成と実装に関する深い理解

1. サーブレットとは何か1.1. 正式な言葉で説明する:サーブレットは、動的な Web リソースを...

Ubuntuにmysql5.7.10を手動でインストールする

このチュートリアルでは、UbuntuにMySQL 5.7.10を手動でインストールする手順を参考まで...

Vue開発の一般的な手法の詳細な説明

目次$nextTick() $forceUpdate() $セット() .sync——2.3.0 以...

HTML ボディタグと HTML でよく使われる制御タグの詳細な説明

1. <body> タグ: Web ページの本体をマークするために使用されます。body...

VMware および CentOS システムのインストール方法 - ルート パスワードをリセットする

今日のタスク1. Linuxディストリビューションの選択2.vmwareが仮想マシン(centos)...

HTML ページはダーク モードの実装をサポートします

2019年から、AndroidとiOSの両方のプラットフォームでダークモードが使用され始めました。も...

Nginxはリバースプロキシを使用して負荷分散プロセス分析を実装します

導入dockerコンテナとdocker-composeに基づいて、Linux環境でのdockerの基...

Vue で Excel ストリーム ファイルをダウンロードし、ダウンロード ファイル名を設定する方法

目次概要1. URL経由でダウンロード2. aタグのダウンロード属性とblobコンストラクタを組み合...

HTML 適応テーブル方式

<body style="scroll:no"> <テーブルの...

MySQLに絵文字表現を保存する詳細な手順

原因: java.sql.SQLException: 列の文字列値が正しくありません: '\...

MySQL の繰り返し読み取りレベルでファントム読み取りを解決できますか?

導入データベース理論についてさらに学んでいくうちに、さまざまな分離レベルによって起こり得る問題につい...

MySQL コピーテーブルと許可分析の 3 つの実装方法

テーブルを素早くコピーする方法まず、テーブル db1.t を作成し、1000 行のデータを挿入します...