Docker リポジトリ管理の実際: パブリック リポジトリとプライベート リポジトリ

Docker リポジトリ管理の実際: パブリック リポジトリとプライベート リポジトリ

コアコンテンツ

  • Docker パブリック リポジトリとプライベート リポジトリの概要。
  • パブリック リポジトリ (Docker ハブ) にログインおよびログアウトするための詳細な手順。
  • シンプルなプライベート倉庫の構築方法。
  • プライベート リポジトリ内のプライベート イメージをクエリ、アップロード、ダウンロードする方法。

公営倉庫と民間倉庫

Docker レジストリは、Docker イメージを保存および管理する場所です。パブリックまたはプライベートにすることができ、Docker イメージを共有、保存、管理するための集中的な場所を提供します。これは GitHub と GitLab に少し似ていますが、GitHub と GitLab はコード ホスティング プラットフォームであるという点が異なります。プラットフォーム上でホストされているのはコードであり、ここではさまざまな画像がホストされています。

以下は、パブリック イメージ ウェアハウスとプライベート イメージ ウェアハウスという 2 種類のウェアハウスの代表的な例です。

  • Docker Hub: Docker Hub は Docker が提供する公式イメージ リポジトリであり、多数の公開イメージが含まれています。ユーザーは Docker Hub を通じてクラウドに独自のイメージを保存し、共有できます。 Docker Hub では、さまざまなオープンソース ソフトウェアの公式イメージやコミュニティが管理するイメージを見つけたり、アカウントを作成して独自のイメージをアップロードしたりできます。
  • Harbor: Harbor は、安全で信頼性の高いイメージの保存と管理機能を提供する、オープンソースのエンタープライズ レベルの Docker イメージ リポジトリ サービスです。複数のストレージ バックエンドをサポートし、柔軟なアクセス制御と権限管理機能を提供するため、企業内での使用に適しています。

これらのイメージ リポジトリは、さまざまなシナリオのニーズを満たす豊富な機能とサービスを提供します。ユーザーがニーズに応じて Docker イメージを保存および管理するための適切なイメージ リポジトリ サービスを選択する場合は、パブリック イメージ リポジトリとプライベート イメージ リポジトリの違いを事前に明確に理解する必要があります。

アクセス権

  • パブリック イメージ リポジトリ: パブリック イメージ リポジトリはオープンであり、認証や支払いなしで誰でもその中のイメージにアクセスできます。ユーザーは検索機能を使用して、パブリック リポジトリ内の画像を検索してダウンロードできます。
  • プライベート イメージ リポジトリ: プライベート イメージ リポジトリは制限されており、承認されたユーザーのみがその中のイメージにアクセスできます。通常、認証が必要であり、アクセスするには有料サブスクリプションが必要になる場合があります。プライベート リポジトリは、組織内で使用される機密イメージや独自のイメージを保存および共有するのに適しています。

安全

  • パブリック イメージ リポジトリ: パブリック イメージ リポジトリ内のイメージは、コミュニティの貢献者や公式のメンテナーなど、さまざまなソースから提供される場合があります。ほとんどの画像は安全ですが、ユーザーはセキュリティ上の脆弱性や悪意のあるコードの可能性に注意する必要があります。
  • プライベート イメージ リポジトリ: プライベート イメージ リポジトリは組織によって管理および監視されるため、イメージのソースとコンテンツをより適切に制御し、セキュリティを強化できます。

カスタマイズと拡張性

  • パブリック イメージ リポジトリ: パブリック イメージ リポジトリには通常、よく使用されるイメージが多数含まれており、ユーザーはすぐに取得して使用できます。ただし、公開されているため、ユーザーが画像をカスタマイズしたり拡張したりできない可能性があります。
  • プライベート イメージ リポジトリ: プライベート イメージ リポジトリでは、組織のニーズに応じてイメージをカスタマイズおよび拡張し、特定のビジネス ニーズを満たすことができます。ユーザーはニーズに応じて独自のイメージを作成および管理し、カスタマイズおよび拡張することができます。

料金

  • パブリック イメージ リポジトリ: パブリック イメージ リポジトリは通常無料で、ユーザーはそこに含まれるイメージに無料でアクセスして使用できます。
  • プライベート イメージ リポジトリ: プライベート イメージ リポジトリにアクセスして使用するには、有料サブスクリプションが必要になる場合があります。コストはプロバイダーとサブスクリプションプランの特定の価格設定によって異なります。

画像リポジトリにログインする

docker login コマンドは、Docker Hub またはその他の Docker イメージ リポジトリ サービスにログインするために使用されます。ログインに成功すると、Docker クライアントを使用してイメージをイメージ リポジトリにプッシュまたはプルできます。

基本的な構文

docker login [OPTIONS] [SERVER]

各部分の意味は次のとおりです。

  • オプション: 追加のオプションと構成を指定するために使用されるオプション パラメーター。
  • SERVER: ログインする Docker イメージ リポジトリ サービスのアドレス。このパラメータを指定しない場合、デフォルトのログインは Docker Hub になります。

OPTIONS セクションには、次の 2 つの一般的なオプションがあります。

  • -u, --username: ユーザー名
  • -p, --password: パスワード

使用例

Docker Hubにログインします。

 docker login

写真

これにより、対話型ダイアログが開き、ユーザー名とパスワードの入力を求められます。正常にログインするには、正しいユーザー名とパスワードを入力してください。

コマンドラインからユーザー名とパスワードを指定する場合は、-u および -p オプションを使用します。

 docker login -u USERNAME -p PASSWORD

プライベート イメージ リポジトリ サービスにログインする場合は、対応するプライベート イメージ リポジトリ サービスのアドレスを指定する必要があります。 REGISTRY_URL はプライベート リポジトリ サービスのアドレスです。

 docker login REGISTRY_URL

ログインが成功すると、ターミナルにログインが成功したことを示すプロンプト メッセージが表示され、Docker クライアントは提供された資格情報を使用して、後続の操作でイメージ リポジトリ サーバーと通信します。

Docker レジストリにログインする際、パスワードは平文で送信されるため、docker login コマンドは必ず安全な環境で使用し、公共の場や安全でないネットワークでは使用しないようにしてください。

画像リポジトリからログアウトする

docker logout コマンドは、現在ログインしている Docker ユーザーをログアウトし、Docker Hub またはその他の Docker イメージ リポジトリ サービスからログアウトするために使用されます。

基本的な構文

docker logout [SERVER]

SERVER パラメータはオプションであり、ログアウトする Docker レジストリのアドレスを指定するために使用されます。このパラメータを指定しないと、現在ログインしている Docker Hub アカウントはデフォルトでログアウトされます。

使用例

現在ログインしている Docker Hub アカウントからログアウトします。

 docker logout

現在プライベート Docker レジストリにログインしている場合は、対応するレジストリ アドレスを指定してログアウトできます。

 docker logout REGISTRY_URL

コマンドを実行すると、ログアウトが成功したことを示すプロンプト メッセージが表示され、Docker クライアントはレジストリとの通信に以前に提供された資格情報を使用しなくなります。

プライベート倉庫管理

オープンソースのエンタープライズレベルの Docker プライベート リポジトリ ツールの中で、Harbo は代表的なものであり、比較的人気があります。 Docker はオープンソースのイメージ リポジトリ ツール Docker Registry も公式に提供しています。 Harborと比較すると、Docker Registry の機能は劣ります。両者の機能上の違いは次のとおりです。

機能拡張

  • Docker レジストリ: Docker レジストリは、Docker が提供するオープンソースのイメージ リポジトリ サービスであり、基本的なイメージの保存および転送機能を提供します。 Docker Engine の一部として実行でき、HTTP API に基づく標準インターフェースを提供します。
  • Harbor: Harbor は、VMware が開始したオープンソースのエンタープライズ レベルの Docker レジストリ サービスです。これは Docker Registry 2.0 上に構築されており、より豊富な機能とより高度な機能を提供します。 Harbor は、基本的なイメージの保存および転送機能に加えて、セキュリティ スキャン、RBAC 権限制御、イメージの複製と同期、イメージの署名など​​の多くの高度な機能も提供します。

セキュリティとアクセス制御

  • Docker レジストリ: Docker レジストリは基本的な認証機能を提供しますが、権限制御は比較的弱いです。画像コンテンツに対するセキュリティスキャンおよび監査機能がありません。
  • Harbor: Harbor は、より強力なセキュリティと権限制御機能を提供します。ロールベースのアクセス制御 (RBAC)、LDAP/AD 統合、イメージ コンテンツの脆弱性スキャンとセキュリティ監査、およびイメージの署名と検証をサポートしており、ユーザーはイメージ コンテンツのセキュリティをより適切に管理および保護できます。

ミラー複製と同期

  • Docker レジストリ: Docker レジストリ自体はイメージのコピーや同期の機能を提供していないため、ユーザーが独自に実装する必要があります。
  • Harbor: Harbor はミラーリングと同期機能をサポートしており、複数の Harbor インスタンス間でミラーを同期して、高可用性と災害復旧バックアップを実現できます。

マルチテナントサポート:

  • Docker レジストリ: Docker レジストリはネイティブのマルチテナント サポートを提供しません。すべてのユーザーとリポジトリは同じ名前空間にあります。
  • Harbor: Harbor はマルチテナント サポートを提供し、異なるプロジェクトまたは組織間で異なる権限とアクセス制御ポリシーを分割して、テナント間の分離とセキュリティを確保できます。

一般的に、Harbor は Docker Registry に基づくより高度な機能とセキュリティ制御を提供し、より複雑なエンタープライズ レベルのアプリケーション シナリオに適しています。

実際の業務で使うのであれば、Harbor の方が断然おすすめです。この記事では主に、プライベート イメージ リポジトリ管理における基本的な機能と一般的な操作について説明します。そのため、ここでは Docker の公式オープンソースイメージリポジトリサービスである Docker Registry を使用します。 Harborの詳しいインストール方法や使い方については後ほど別途紹介します。

Docker レジストリをインストールします。

docker run コマンドを使用して、Docker Hub から Docker Registry イメージをプルし、コンテナを実行するだけです。

 docker run -d -p 5000:5000 --restart=always --name registry registry:latest

これにより、サーバー上で Docker Registry コンテナが起動し、デフォルトのポート 5000 でリッスンし、コンテナが終了すると自動的に再起動されるため、Docker Registry サービスが常に利用可能になります。

ローカルイメージにリモートリポジトリのタグを付けます。

 docker tag myimage your-registry/myimage:latest

イメージをリモート リポジトリにプッシュします。

 docker push your-registry/myimage:latest

このようにして、myimage イメージの最新バージョンが your-registry という名前のプライベート リポジトリにプッシュされます。

プライベートリポジトリ内のイメージを使用する場合:

 docker pull your-registry/myimage:latest


<<:  エッジコンピューティングがデータ処理と IoT インフラストラクチャに与える影響

>>:  なぜ新しいストレージとコンピューティングの分離が主流になるのでしょうか?

推薦する

vmbox - $20/年/2IP/1g メモリ/50g ハードディスク/2T トラフィック/ロサンゼルス

3 つのデータ センター: SingleHop のアムステルダムとフェニックス、Quadranet ...

nodeblade、QN データセンターの安価な KVM VPS、1G メモリで月額 3 ドルから

安価な VPS をお勧めします。これは KVM 仮想、SSD ディスクで、Quadranet のロサ...

クラウドコンピューティングが「後半」に突入する中、国内クラウドコンピューティングの活路はどこにあるのでしょうか?

企業のデジタル変革が加速する中、クラウド コンピューティングはかつて、熾烈なインターネット市場におけ...

エクスポート リンク: これらの考慮事項を理解していますか?

SEO 会社で働き、ウェブサイトの最適化作業を行っている人は、ウェブサイトのリンク構築について多かれ...

SEO エキスパートになる方法についての簡単な説明

最近、ある疑問について考えていました。同じ SEO を行っている人でも、なぜ成功する人がいる一方で、...

IBM、AT&Tと複数年にわたる数十億ドル規模のクラウドコンピューティング契約を締結

7月17日のニュース、海外メディアの報道によると、現地時間の火曜日、IBMは同社がAT&Tと...

ウェブサイトの重量を改善するために新しいサイトにフレンドリーリンクを構築する方法

ウェブマスターなら誰でも、新しいサイトの場合、ウェブサイトの重量を迅速に改善することが最優先事項であ...

サービスとしてのデータベースのさまざまな形態

これは、独自の IT インフラストラクチャ上でのデータベースの従来の手動インストールと管理とは異なり...

Wang Tong: SEO 実践者はどのようにアップグレードすべきでしょうか?

ここ数か月、Baidu は中国の SEO 実践者全員を大いに苦しめてきました。多くの人が「SEO は...

クラウドサービスの10年: BAT、Amazon、Googleの楽しい争い

クラウドコンピューティングにおける AI 競争は始まったばかりです。この話題がWeiboで話題になる...

毎日の話題:アリババと民生銀行がインターネット金融の推進で協力

ウェブマスターネットワーク(www.admin5.com)は9月16日、アリババグループと中国民生銀...

ウェブマスターネットワークからの毎日のレポート:Facebookが株式公開し、Tencentが再編

ナスダックは、フェイスブックが今夜23時頃に取引を開始すると発表北京時間5月18日早朝、ナスダックは...

Hujiang.com: 英語を「売る」組立ラインがB2Cによって推進されている

スタートアップID起業家:傅才瑞創業時期: 2001年スタートアップ拠点:上海ビジネスモデル:広告収...

優れたマーケティングブログがすべきこと

私が構築した金採掘サイトは、優れたマーケティング ブログの例ではありません。成功するマーケティング ...

SEO最適化のワークフローの詳細説明パート2:実装

先ほど「SEO最適化作業トラフィックの準備」についてお話しましたが、今日は実装を開始する方法について...