Dockerプライベートウェアハウスの構築とインターフェース管理の詳細な説明

Dockerプライベートウェアハウスの構築とインターフェース管理の詳細な説明

1. レジストリについて

公式 Docker ハブは、パブリックイメージを管理するのに適した場所です。必要なイメージをそこで見つけたり、独自のイメージをプッシュしたりできます。

しかし、使用シナリオによっては、独自のイメージを管理するためのプライベート イメージ リポジトリが必要になる場合があります。これはオープンソース ソフトウェア レジストリを通じて実現できます。

レジストリには、GitHub 上に古いコード ベースと新しいコード ベースの 2 つのコードがあります。古いコードは Python で書かれており、プルとプッシュでパフォーマンスの問題があります。バージョン 0.9.1 以降は非推奨とマークされ、開発されなくなりました。

バージョン 2.0 からは、Go 言語で記述された新しいコード ベースでの開発が開始されました。イメージ ID 生成アルゴリズムとレジストリ上のイメージ ストレージ構造が変更され、イメージのプルとプッシュの効率が大幅に最適化されました。

公式レジストリイメージは Docker hub で提供されています。レジストリイメージを直接使用してコンテナを構築し、独自のプライベート ウェアハウス サービスを構築できます。

2. レジストリを構築する

まず画像を検索して取得する

docker search registry # 最初に検索することをお勧めします。関連画像を見ることができます。いつかもっと良い画像が見つかるかもしれません。docker pull registry # 最新のものは v2 なので、タグを追加する必要はありません。

レジストリコンテナの実行

docker run -d \ # バックグラウンドで実行 --name registry-srv \ # コンテナ名を指定します --restart=always \ # 自動起動を設定します -p 5000:5000 \ # ポートマッピングホスト、ホストアドレスを介してアクセスします -v /opt/zwx-registry:/var/lib/registry \ # 管理と永続性を容易にするために、イメージストレージディレクトリをローカルにマウントします -v /opt/zwx-registry/srv-config.yml:/etc/docker/registry/config.yml \ # レジストリの変更と保存を容易にするために、構成ファイルをローカルにマウントします

srv-config.ymlの内容は次のとおりです。

赤でマークされた削除パラメータは、ウェアハウスが削除機能をサポートできるように true に設定されています。このパラメータはデフォルトでは使用できないため、リポジトリ イメージを削除することはできません。

バージョン: 0.1
ログ:
 フィールド:
 サービス: レジストリ
ストレージ:
 消去:
 有効: true
 キャッシュ:
 blobdescriptor: メモリ内
 ファイルシステム:
 ルートディレクトリ: /var/lib/registry
http:
 住所: :5000
 ヘッダー:
 X-Content-Type オプション: [nosniff]
健康:
 ストレージドライバー:
 有効: true
 間隔: 10秒
 閾値: 3

https プロトコルを登録します (そうしないと、プッシュ セキュリティ認証が失敗します)

ローカルウェアハウスからイメージをダウンロードし、設定する必要があります。

vim /etc/docker/daemon.json # このファイルはデフォルトでは存在しないため、自分で追加する必要があります。存在する場合は、次の内容を追加します。
{ "insecure-registries":["xx.xx.xx.xx:5000"] } # IP アドレスまたはドメイン名を指定します systemctl daemon-reload # デーモンを再起動します systemctl restart docker # Docker サービスを再起動

画像のアップロードとダウンロード

docker push xx.xx.xx.xx:5000/nginx # 必ず倉庫のアドレスを指定してください。そうしないとエラーが報告されます。docker pull xx.xx.xx.xx:5000/nginx

倉庫ミラー情報を見る

curl -XGET http://xx.xx.xx.xx:5000/v2/_catalog # リポジトリイメージリストを表示します (Windows ブラウザから開くこともできます)
curl -XGET http://xx.xx.xx.xx:5000/v2/image_name/tags/list # 指定されたアプリケーションイメージタグを表示します

3. レジストリウェブを構築する

まず画像を検索して取得する

docker 検索 docker-registry-web
docker pull hyper/docker-registry-web # このイメージは多くの人が使用しています

レジストリウェブコンテナを実行する

docker run -d \ # バックグラウンドで実行 --name registry-web \ # コンテナ名を指定します --restart=always \ # 自動起動を設定します -p 8000:8080 \ # ポートマッピングホスト、ホストアドレスを介してアクセスします -v /opt/zwx-registry/web-config.yml:/etc/config.yml \ # 簡単に変更および保存できるように、構成ファイルをローカルにマウントします hyper/docker-registry-web

web-config.ymlファイルの内容は次のとおりです。

Web ページに削除ボタンを表示できるように、 red readonly パラメータが false に設定されています。デフォルトは true で、読み取り専用状態、削除ボタンなし、表示のみとなります。

レジストリ:
 # Docker レジストリ URL
 URL: http://10.88.77.32:5000/v2
 # Docker レジストリ FQDN
 名前: localhost:5000
 # 画像の削除を許可するには false にする必要があります
 読み取り専用: false
 認証:
 # 認証を無効にする
 有効: false

デプロイが完了したら、ブラウザでリポジトリ UI アドレスを開いて、すべてのアプリケーション イメージを表示できます。


アプリケーション イメージ ライブラリを選択すると、イメージのすべてのタグ情報が表示されます。各タグの後に削除ボタンがあります (デフォルトでは削除ボタンはありません。設定については config.yml を参照してください)。

4. 迅速な展開

クラスター モードでは、Docker スタックを介してレジストリとレジストリ Web をすばやくデプロイできます。

新しい設定ファイル srv-config.yml と web-config.yml を作成し、指定されたパスに配置してから、新しい docker-compose.yml ファイルを作成し、コマンドを実行します。

docker スタックデプロイ -c docker-compose.yml RGT
version: '3.7' # docker スタックはバージョン 3.0 以上である必要があります services:
 registry-srv: # サービス名image: registry
 
 ポート: #マップされたポート - 5000:5000
  
 volumes: # イメージパスと設定ファイルをマウントします。変更したパスは実際のパスと一致している必要があります - /opt/zwx-registry:/var/lib/registry
  - /opt/zwx-registry/srv-config.yml:/etc/docker/registry/config.yml
  
 deploy: # 単一のタスクを設定し、マスターノードを実行モードに制限します: replicated
  レプリカ: 1
  配置:
  制約:
   - node.role == マネージャー
  
 registry-web: #サービス名イメージ: hyper/docker-registry-web
 
 ポート: # マッピングされたポート - 8000:8080
 
 volumes: #設定ファイルをマウントします。変更したパスは実際のパスと一致している必要があります - /opt/zwx-registry/web-config.yml:/conf/config.yml
  
 環境:
  - レジストリ URL = http://registry-srv:5000/v2
  - レジストリ名=localhost:5000
 
 deploy: # 単一のタスクを設定し、マスターノードを実行モードに制限します: replicated
  レプリカ: 1
  配置:
  制約:
   - node.role == マネージャー

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • Docker Registry プライベート ウェアハウスを構築するための詳細な手順
  • Docker でローカルプライベートウェアハウスを構築するための詳細な手順
  • Docker プライベートリポジトリの管理とローカルリポジトリ内のイメージの削除
  • プライベートレジストリ内の画像を照会または取得する方法
  • Dockerチュートリアル: プライベートウェアハウスの詳細な説明
  • Dockerイメージをプライベートリポジトリにアップロードする方法の例
  • プライベート倉庫のcentos7 docker1.12インストールの詳しい説明
  • Dockerプライベートウェアハウスを構築する最も簡単な方法の詳細な説明
  • Dockerプライベート倉庫の構築と利用の詳細説明
  • CentOS 7の詳細解説:Dockerプライベートウェアハウスの構築と使い方

<<:  MySQL デッドロック ルーチン: 一意のインデックスの下でのバッチ挿入順序の不一致

>>:  GIFアニメーション効果を模倣した自動ビデオ再生を実現するWeChatアプレットの例

推薦する

MySQL シリーズ 6 のユーザーと認証

目次チュートリアルシリーズ1. ユーザー管理1. ユーザーアカウント2. アカウントの追加と削除3....

MySQL 8.0.12 のインストールと使用方法のチュートリアル

MySQL 8.0.12のインストールと使用のチュートリアルを録画しました。ウィンドウズまず、公式ウ...

MySQLの制限を使用して大規模なページングの問題を解決する方法

序文日常の開発では、MySQL を使用してページングを実装する場合、常に MySQL 制限構文を使用...

シェルスクリプトはNginxのaccess.logのPVを定期的にカウントし、APIに送信してデータベースに保存します。

1. PVとIPの統計一日のPV(ページビュー)をカウントする cat access.log | ...

MySQL 5.1 のパスワードを変更し、MySQL データベースにリモートでログインする方法

mysql ユーザーを作成し、承認します。形式: 「ユーザー パスワード」で識別されるユーザー@ログ...

リクエストを転送したり、静的リソースファイルにアクセスしたりする複数の場所への nginx の実装

この記事では主に、リクエストを転送したり、静的リソース ファイルにアクセスしたりする nginx の...

ブラウザのCSS、JavaScript、背景画像のキャッシュをクリアする簡単な方法

実際のプロジェクト開発プロセスでは、ページがサーバーにアップロードされます。サーバーへの負荷を軽減し...

中国語フォントの英語名まとめ

CSS の font-family プロパティを使用して中国語フォントを参照する場合、フォントを定義...

WeChat アプレットのカスタム タブバー コンポーネント

この記事では、WeChatアプレットのカスタムタブバーコンポーネントの具体的なコードを参考までに紹介...

Navicat を使用してリモート Linux MySQL データベースに接続するときに発生する 10061 不明エラーの詳細な説明

Navicat を使用してリモート Linux MySQL データベースに接続すると、不明なエラー ...

MySQL実践ウィンドウ関数SQL分析クラスの生徒のテストの成績と生活費

目次1. 背景2. テーブル作成ステートメントとデータ挿入テーブルを作成するデータの挿入3. ウィン...

mysqlは時間を自動的に追加し、時間を自動的に追加および更新する操作を実装します

時間フィールドは、データベースの使用時によく使用されます。よく使われるのは作成時間と更新時間です。し...

npmとcnpmを混在させる際の落とし穴の詳細な説明

目次原因理由NPM の紹介: CNPM の紹介:より良い方法方法の改善npm と cnpm を一緒に...

Windows の MySQL net start mysql MySQL サービスの起動エラーが発生する システムエラーの解決

目次1- エラーの詳細2-シングルソリューション2.1-ディレクトリ C:\Windows\Syst...