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 をご愛顧いただき、誠にありがとうございます。 以下もご興味があるかもしれません:
|
<<: MySQL デッドロック ルーチン: 一意のインデックスの下でのバッチ挿入順序の不一致
>>: GIFアニメーション効果を模倣した自動ビデオ再生を実現するWeChatアプレットの例
目次チュートリアルシリーズ1. ユーザー管理1. ユーザーアカウント2. アカウントの追加と削除3....
MySQL 8.0.12のインストールと使用のチュートリアルを録画しました。ウィンドウズまず、公式ウ...
序文日常の開発では、MySQL を使用してページングを実装する場合、常に MySQL 制限構文を使用...
1. PVとIPの統計一日のPV(ページビュー)をカウントする cat access.log | ...
mysql ユーザーを作成し、承認します。形式: 「ユーザー パスワード」で識別されるユーザー@ログ...
この記事では主に、リクエストを転送したり、静的リソース ファイルにアクセスしたりする nginx の...
実際のプロジェクト開発プロセスでは、ページがサーバーにアップロードされます。サーバーへの負荷を軽減し...
CSS の font-family プロパティを使用して中国語フォントを参照する場合、フォントを定義...
この記事では、WeChatアプレットのカスタムタブバーコンポーネントの具体的なコードを参考までに紹介...
1. <div></div> と <span></spa...
Navicat を使用してリモート Linux MySQL データベースに接続すると、不明なエラー ...
目次1. 背景2. テーブル作成ステートメントとデータ挿入テーブルを作成するデータの挿入3. ウィン...
時間フィールドは、データベースの使用時によく使用されます。よく使われるのは作成時間と更新時間です。し...
目次原因理由NPM の紹介: CNPM の紹介:より良い方法方法の改善npm と cnpm を一緒に...
目次1- エラーの詳細2-シングルソリューション2.1-ディレクトリ C:\Windows\Syst...