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データベース監視binlogを有効にする手順

序文多くの場合、ユーザーが自分のデータに対して実行する操作に基づいて何かを行う必要があります。たとえ...

ネガティブマージン関数の紹介と使用方法の概要

1998 年の CSS2 勧告の時点で、テーブルは徐々に舞台から消え、歴史の中に記録されるようになり...

MySQL の暗黙的な型変換によって発生するインデックス障害の解決策

目次質問再生暗黙的な変換要約する参照する質問仕事中、1 つの SQL クエリ ステートメントのみを実...

Linux で JDK をインストールして環境変数を設定する方法 (この記事で十分です)

目次1. Linuxのビット数を確認する2. JDKをダウンロードする3. JDKをインストールする...

iframeフレームはIEブラウザで白い背景を透明に設定します

最近、プロジェクトを進める過程で、ページの階層構造を描画するために iframe を頻繁に使用する必...

Linux での中国語入力方法の問題を素早く解決する

背景: 最近、資産報告関連の機能に取り組んでおり、中国語入力をサポートする必要があります。通常のショ...

CSSスクロールバーのスタイルをカスタマイズする方法の詳細な説明

この記事では、CSS スクロールバー セレクターを紹介し、Webkit ブラウザーと IE ブラウザ...

MySQL 8.0 をインストールした後、初めてログインするときにパスワードを変更する問題を解決する

MySQL 8.0.16で初回ログイン時のパスワードを変更する方法を紹介します。 MySQLデータベ...

Vue+Elementでページング効果を実現

この記事の例では、ページング効果を実現するためのvue+Elementの具体的なコードを参考までに共...

同じ日の最初の3つのデータを取得するためのMySQLタイムラインデータ

テーブルデータを作成する テーブル `praise_info` を作成します ( `id` bigi...

Hadoop におけるネームノードとセカンダリネームノードの動作メカニズムの説明

1) プロセス 2) FSImageと編集NodeNode は HDFS の頭脳です。ファイルシステ...

Linux パーティションまたは論理ボリュームにファイルシステムを作成する方法

序文システムにファイル システムを作成し、それを永続的または非永続的にマウントする方法を学習します。...

WeChat アプレット uniapp は左スワイプによる削除効果を実現します (完全なコード)

WeChatアプレットuniappは左スワイプで削除効果を実現成果を達成する1. スワイプしてリス...

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

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

IE で ClearType をオンにした後の透明フォントの問題の解決方法

IE で ClearType をオンにした後に発生する透明フォントの問題を解決するには、透明要素に背...