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

推薦する

Linux環境でタイムゾーンを設定できない問題を解決

Linuxでタイムゾーンを変更する場合、常に変更することはできませんAsia/Shanghai に変...

CSS3 を使用した背景ぼかし効果の 3 つの例

導入から始めず、いきなり本題に入りましょう。通常の背景ぼかし効果は次のとおりです。 プロパティを使用...

DockerでSpring Bootアプリケーションを実行する方法

ここ数日、dockerでSpring Bootアプリケーションを実行する方法を勉強してきました。以前...

Nginxはドメイン名のアクセス方法を定義しています

最近Nginxを構築しているのですが、ドメイン名でアクセスできません。 nginx 構成ファイル n...

CSS でレスポンシブ レイアウトを実装する方法

CSS でレスポンシブ レイアウトを実装するレスポンシブレイアウトは非常にハイエンドで難しいように思...

CSS は Google マテリアル デザインのテキスト入力ボックス スタイルを実装します (推奨)

みなさんこんにちは。今日は、純粋な CSS を使用して Google マテリアル デザインのテキスト...

JavaScriptのスリープ関数の使用

目次1.スリープ機能2.タイムアウトを設定する3. 約束4. 非同期待機5. 1秒後に出力1、2秒後...

LinuxにMySQLをインストールし、外部ネットワークアクセスを構成する例

設定手順1. DNSが設定されているかどうかを確認するDNSが設定されていない場合は、前の記事を参照...

Vueのカスタムディレクティブの詳細なガイド

目次1. カスタム指示とは何ですか? 2. 指示をカスタマイズする方法フック機能3. 応用シナリオ入...

Sitemesh チュートリアル - ページ装飾技術の原理と応用

1. 基本概念1. Sitemeshはページ装飾技術です。 1 : フィルターを通してページアクセス...

C++ を使用して MySQL に接続する方法

C++でMySQLに接続する際の参考情報です。具体的な内容は以下のとおりです。 MySQLCon ク...

Centos7.3 Nginx をインストールして展開し、https を設定する方法

設置環境1. gccのインストールnginxをインストールするには、まず公式サイトからダウンロードし...

ES6 ループと反復可能オブジェクトの例

この記事では、ES6 の for ... of ループについて説明します。古い方法以前は、JavaS...

crontab スケジュールされたタスクが実行されない理由の分析と解決

序文Linux のスケジュールされたタスクを実装する方法としては、cron、anacron、at な...