プライベートイメージウェアハウスを構築するためのDockerレジストリの実装方法

プライベートイメージウェアハウスを構築するためのDockerレジストリの実装方法

マイクロサービスのイメージは、保存用に Docker リポジトリにアップロードされます。一般的に使用されるパブリック Docker リポジトリには、Alibaba Cloud、NetEase Cloud などがあります。また、エンタープライズ LAN 内に独自の Docker プライベート リポジトリを構築することもできます。このチュートリアルでは、Docker が提供するプライベート リポジトリ レジストリを使用します。

1. プライベートウェアハウスイメージを取得する

docker プルレジストリ

2. プライベート倉庫コンテナを作成して起動する

docker run -dit -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name docker-registry レジストリ

パラメータの説明

  • -dit: コンテナ内で擬似端末を開いて対話型操作を行い、バックグラウンドで実行する
  • -v: データの永続性を実現するために、ホストの /data/registry ディレクトリをコンテナの /var/lib/registry ディレクトリ (このディレクトリは、レジストリ コンテナ内のイメージ ファイルが格納されるディレクトリ) にマウントします。
  • -p: ポートをマップし、ホストのポート 5000 にアクセスしてレジストリ コンテナ サービスにアクセスします。
  • --restart=always: これは再起動戦略です。コンテナが異常終了した場合、コンテナは自動的に再起動されます。
  • --name docker-registry: docker-registry という名前のコンテナを作成します。任意の名前を付けることができます。
  • レジストリ: プルされたイメージ


上記は、レジストリ イメージが作成され、docker-registry コンテナーが正常に起動されたことを示しています。 http://139.9.40.41:5000/v2/_catalog にアクセスすると、応答結果は次のようになります。

{"リポジトリ":[]}

上記の応答結果は、Docker プライベート リポジトリにイメージが存在しないことを示しています。

デフォルトでは、docker-registry はイメージの送信に https のみを許可します。次の設定により、docker-registry は http をサポートできるようになります。/etc/docker の下に daemon.json ファイルを作成し、次のように記述します。

{ 
 "安全でないレジストリ": [ "139.9.40.41:5000"]
}

3. Dockerを再起動する

systemctl dockerを再起動します

4. 画像をプライベート倉庫にアップロードする

このイメージをプライベートリポジトリイメージとしてマークする

docker タグ docker.io/hello-world 139.9.40.41:5000/hello-world:v1

タグ付き画像をアップロードする

docker push 139.9.40.41:5000/hello-world:v1 

すべての画像を一覧表示

[root@2 docker]# curl http://139.9.40.41:5000/v2/_catalog
{"リポジトリ":["hello-world"]}

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Dockerレジストリプライベートウェアハウスの構築プロセス
  • Dockerプライベートウェアハウスレジストリの導入
  • Docker はプライベート ウェアハウス (レジストリ、ハーバー) を構築します
  • Dockerプライベートウェアハウスレジストリの構築と検証の詳細説明
  • Dockerレジストリイメージを使用してプライベートリポジトリを作成する方法
  • Dockerレジストリイメージの削除とガベージコレクションの詳細な説明
  • Dockerレジストリプライベートイメージウェアハウスサービス導入事例デモ

<<:  MySQL 8のパスワードを忘れた場合のベストな対処法の簡単な分析

>>:  航空機戦争ゲームを実装するためのネイティブJS

推薦する

HTMLファイル内の中国語の文字化けとブラウザでの表示の問題

今日も私のページが文字化けしていたので、インターネットで関連する問題を検索しました。この方法はかなり...

Vueのv-onパラメータの問題についてお話しましょう

Vue での v-on:clock の使用現在、vue.js フレームワークを学習しています。後で参...

JavaScript における正規表現の実際的な応用の詳細な説明

実際の業務では、JavaScript の正規表現が依然として頻繁に使用されます。したがって、この部分...

CSS ボックスを中央揃えするためのよく使われるいくつかの方法 (要約)

最初のもの: CSSの位置プロパティの使用 <スタイル タイプ="text/css&...

docker によってプルされたイメージがどこに保存されるかの詳細な説明

20200804追記:記事の内容に誤りがある可能性があります。他の回答を検索することもできます。 d...

MySQL が大規模トランザクションを避けるべき理由とその解決方法

何が大問題ですか?長時間実行され、長時間コミットされないトランザクションは、大規模トランザクションと...

CSS シャドウアニメーションの最適化のヒント

このテクニックは、この記事から来ています - シルキーでスムーズなパフォーマンスでボックスシャドウを...

MySQL インデックス プッシュダウンを 5 分で理解する

目次インデックス プッシュダウンとは何ですか?インデックスプッシュダウン最適化の原理インデックスプッ...

MySql バージョンの問題に対する完璧なソリューション sql_mode=only_full_group_by

1. sql_modeを確認する @@sql_mode を選択照会された値は次のとおりです。 ON...

Windows で MySQL 5.6 を 5.7 にアップグレードする方法

前面に書かれたMySQL をアップグレードする方法には、インプレース アップグレードと論理アップグレ...

シンプルな時計を実装するJavaScript

この記事では、JavaScriptでシンプルな時計を実装するための具体的なコードを参考までに紹介しま...

MySQL の null 制約のケースの説明

目次テーブルを作成するときにNOT NULL制約を設定するテーブルを変更するときに非NULL制約を追...

Linux のロード vmlinux デバッグ

gdb を使用してカーネル シンボルをロードする arm-eabi-gdb 出力/ターゲット/製品/...

React Fiber構造の作成手順

目次リアクトファイバーの作成1. 始める前に2. React.renderから始める3. 終了リアク...

大量のデータを含むエレメントのシャトルボックスで「すべて選択」をクリックするとスタックする問題の解決方法

目次解決策1: EUIの転送コンポーネントをコピーして変更し、プロジェクトディレクトリに導入する解決...