プライベートイメージウェアハウスを構築するための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

推薦する

Vueを使用して天気コンポーネントをロードする方法の詳細な説明

この記事では、Vueを使用して天気コンポーネントをロードする方法を参考までに紹介します。具体的な内容...

Tcl言語に基づくシンプルなネットワーク環境を構成するプロセスの分析

1. Tclスクリプトファイルcircle.tclコードコメント #シミュレーションに必要なプロパテ...

CSSスプライトの応用の詳細な説明

CSS Sprite は、CSS スプライトとも呼ばれ、画像結合技術です。この方法は、複数の小さなア...

MySQLバッチは特定のフィールドのスペースを削除します

Mysql で特定のフィールドからスペースを一括削除する方法はありますか?文字列の前後のスペースだけ...

ポートマッピング後に Docker コンテナが突然接続に失敗する問題のトラブルシューティング プロセス

1. 背景通常、外部サービスを提供する必要がある Docker コンテナの場合、起動時に -p コマ...

ネイティブ js はカスタム スクロール バー コンポーネントを実装します

この記事の例では、カスタムスクロールバーコンポーネントを実装するためのjsの具体的なコードを参考まで...

Ubuntu 20.04 ダブルピンイン入力方式のインストール手順

1. 中国語入力方法を設定する 2. ダブルスペルモードを設定する 3. 注意事項20.04 で S...

MySQLは文字列の連結、インターセプション、置換、位置検索操作を実装しています

MySQL 文字列の連結、インターセプト、置換、および検索位置。よく使用される文字列関数:関数例示す...

一般的なMySQLストレージエンジンの長所と短所

目次すべてのストレージエンジンを表示InnoDB ストレージ エンジンMyISAM ストレージエンジ...

HTML+CSS+jQuery はスクリーンショットで検索ホットリストタブ効果を模倣します

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

MySQLをシンプルに学ぶ

序文データベースは常に私の弱点でした。自分の経験 (python+sqlalchemy) を組み合わ...

Dockerを使用してGitlabを素早くデプロイする方法

1. GitLabイメージをダウンロードする docker pull gitlab/gitlab-c...

Vue echarts は水平棒グラフを実現します

この記事では、水平棒グラフを実現するためのvue echartsの具体的なコードを参考までに共有しま...

JSはじゃんけんゲームを実装します

この記事の例では、じゃんけんゲームを実装するためのJSの具体的なコードを参考までに共有しています。具...

1つの記事でTypeScriptのデータ型について学ぶ

目次基本タイプあらゆるタイプ配列タプルインタフェース関数自己推論を入力する結合タイプ(1つ以上選択)...