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アプレットの例
序文最近、オンラインでデータが誤って操作されました。データベースが直接変更されたため、それを回復する...
テスト環境: C:\>systeminfo | findstr /c:"OS 名&q...
序文ブラウザをどのようにズームしても、ボックス コンテナーの高さを常に 100% に保つ必要がある場...
MySQL の外部キー制約は、2 つのテーブル間のリンクを確立するために使用されます。 1 つのテー...
Ubuntu 17.10 での openssh-server のインストールと使用を記録します。イン...
CSS スタイル html,本文{ 幅: 100%; 高さ: 100%; マージン: 0;パディング...
ご存知のとおり、私たちが毎日閲覧する Web ページ、Web サイト、または Web ページには独自...
目次01 k8sの一般的なコントローラーRCコントローラーデプロイメント コントローラーステートフル...
過去 15 日間のデータをバックアップするシンプルな MySQL 完全バックアップ スクリプト。バッ...
この記事では、フロア効果を実現するためのJavaScriptの具体的なコードを参考までに紹介します。...
クラスターを構成する際に問題が発生しました。当初は 3 台の仮想マシンすべてが外部ネットワークに p...
WeChat アプレット プロジェクトを書いていたとき、その中に「都市選択」機能がありました。作者は...
通常、IE ブラウザでの CSS の互換性の問題を解決するために、フロート レイアウトが使用されます...
背景: Linux サーバーのファイルのアップロードとダウンロード。 XShell+Xftp インス...
エディターは 2 つのカテゴリに分かれていると思います。1 つは、即時レンダリングを実現するために左...