Docker Desktop と JFrog Artifactory をエンタープライズ向けに使用

パートナーのJFrogが書いたこの投稿では、JFrog ArtifactoryとDocker Desktopの操作方法を概説しています。

多くの企業がJFrog ArtifactoryをDockerおよびHelmレジストリとして利用していますが、コンテナサービスを管理するためにDocker Desktopを戦略的に利用しています。

この記事では、 JFrog Artifactory をDockerレジストリとして動作させ、会社のリポジトリ(ローカル、リモート、仮想など)全体でコンテナイメージのプッシュとプルを管理するように Docker Desktop を設定する方法について説明します。 また、JFrog ArtifactoryをDocker Desktopと組み合わせて、ポートフォリオ全体でDockerイメージの移動をきめ細かく制御する方法も紹介します。

青の背景にバナーブログ画像jfrog、アーティファクト、ドッカーのロゴ

始める前に

このチュートリアルでは、次の項目が既に設定されている必要があります。

Docker Desktop と JFrog Artifactory のリンク

DockerデスクトップとJFrogソフトウェアサプライチェーンプラットフォームの旅を始めるには、Artifactoryが選択したコンテナレジストリであると仮定します。 

また、Docker Desktop で標準化しており、組織内でコンテナーを移動するためのコントロール プレーンとして使用することもできます。 そのためには、DockerデスクトップサービスでArtifactoryへのアクセスを許可するように、すべてが適切に設定されていることを確認する必要があります。 

Docker Desktopのレジストリアクセス管理機能は、許可されたリポジトリとリポジトリタイプ(Artifactoryローカル、リモート、仮想リポジトリなど)のみがDocker Desktopによって管理されるように適切にアクセス可能であり、会社の アクセス ルールに従ってすべての権限を適用していることを確認するのに役立ちます。 

ベストプラクティスは、リポジトリやコンテナイメージへの自由なアクセスを許可しないことですので、選択したDockerデスクトップサービスに接続するようにArtifactoryが正しく設定されていることを確認しましょう。

以下の手順を使用して、 ArtifactoryをDocker Hubで許可されたレジストリとして設定します。 (これらの手順は 、公式ドキュメントにもあります。 レジストリアクセス管理機能は、クラウドとオンプレミスの両方のJFrog Artifactoryインスタンスを管理することができます。

  1. 組織の所有者として Docker Hub アカウントにサインインします。
  2. 組織を選択し、[組織] ページの [ 設定 ] タブに移動して、[ レジストリ アクセス管理] を選択します (図 1)。
  3. レジストリアクセス管理有効 を選択し、Artifactoryレジストリのパーミッションの設定を開始します。
  4. Artifactoryをリストに追加するには、 追加 を選択し、該当するフィールドにレジストリの詳細を入力します。 次に、 [ 作成] を選択します。
  5. レジストリリストにArtifactory が表示されていることを確認し、 保存して適用を選択します
  6. [ アクティビティ] タブで変更が保存されたことを確認できます。 無制限のレジストリを追加できることに注意してください。
Docker レジストリ アクセス管理機能が有効になっているスクリーンショット
図1: JFrog ArtifactoryをDocker Hubで許可されたレジストリとして設定する。

アクセスを普遍的に適用する

次に、 Artifactoryを使用しているすべての開発者が特定のリポジトリや特定のパイプラインに誤ってアクセスできないようにしたいとします。これを行うには、Docker デスクトップで組織全体にアクセス規則を適用する必要があります。 会社の IT 部門は、これらの設定を組織内のすべてのユーザーに適用することも、個々の開発者がビジネス ルールと運用設定に応じて手動で構成することもできます ( 公式ドキュメントに示されています)。

サインインを強制するようにレジストリ .json を構成する

デフォルトでは、組織のメンバーは、Docker アカウントにサインインしなくても、自分のコンピューターで Docker Desktop を使用できます。 ユーザーが組織のメンバーである Docker アカウントにサインインし、組織の設定がユーザーのセッションに適用されるようにするには、 registry.json ファイルを使用できます。

この registry.json ファイルは、管理者がユーザーが属する必要がある Docker 組織を指定できるようにする構成ファイルです。 これにより、設定がユーザーのセッションに適用され、会社のルールが整った状態でArtifactoryなどのレジストリにアクセスできるようになります。 Docker Desktop インストーラーは 'registry.json ' を読み取ります。 インストールプロセスの一部としてユーザーのマシン上のこのファイル。

registry.json ユーザーのマシンでファイルが構成されると、Docker Desktop はユーザーにサインインを求めます。ユーザーがサインインしない場合、またはファイルに記載されている registry.json 組織以外の組織を使用してサインインしようとすると、Docker Desktop へのアクセスが拒否されます。

ファイルをデプロイし、ユーザーに認証を強制することを強くお勧めしますが、 registry.json 必須ではありません。 強制認証には、次の利点があります。

  • 管理者は、 イメージ アクセス管理などの機能を構成できます。これにより、チーム メンバーは次のことができます。
  • Artifactoryの認証されたユーザーは、Docker Hubから無制限にプルすることができ、レート制限について心配する必要はありません
  • ユーザーが特定の組織に追加されるまで、ユーザーが Docker Desktop にアクセスできないようにします

レジストリ .json ファイルを作成する

ファイルを作成する registry.json 前に、ユーザーが Docker Hub の少なくとも 1 つの組織のメンバーであることを確認してください。 registry.json ファイルがユーザーがメンバーである少なくとも 1 つの組織と一致する場合、ユーザーは Docker Desktop にサインインして、すべての組織にアクセスできます。

オペレーティング システムに基づいて、次の場所にファイルを作成し registry.json 、ユーザーがファイルを編集できないようにする必要があります。

ウィンドウズ: /ProgramData/DockerDesktop/registry.json

マック: /Library/ApplicationSupport/com.docker.docker/registry.json

リナックス: /usr/share/docker-desktop/registry/registry.json

registry.json ファイルには次の内容が含まれている必要があり、 myorg は組織の名前に置き換えられます。ファイルの内容では大文字と小文字が区別され、組織名には小文字を使用する必要があります。

{
  "allowedOrgs": ["myorg"]
}

Docker Hub で、組織のファイルをダウンロードしたり、特定のコマンドをコピーして組織のファイルを作成したりできるようになりました registry.json 。 

ファイルをダウンロードするか、Docker Hub からコマンドをコピーするには、次のようにします。

  • 組織の所有者として Docker Hub にログインします。
  • [設定] > [組織 ] > [組織] に移動します。
  • [ サインインを強制する] を選択し、Windows、Mac、または Linux の画面に表示される指示に従います。

手記: オペレーティング システムに基づいて組織のファイルを作成する registry.json その他の方法については、Docker Desktop の ドキュメントを参照してください。

Docker と Artifactory のテスト

次に、すべてが正しく機能していること、および開発者がアクセスすべきでないものにアクセスできないようにし (その結果、ビジネスが公開される)、必要なすべてのレジストリにもアクセスできることを確認する必要があります。

グローバルな変更を確認する

ファイルを作成して registry.json ユーザーのマシンにデプロイした後、ArtifactoryにアクセスするためにDocker Desktopを起動するようにユーザーに依頼することで、アクセスの変更が有効になったかどうかを確認できます。

構成が成功すると、Docker Desktop は起動時に組織の資格情報を使用して認証するようにユーザーに求めます。 ユーザーが認証に失敗すると、エラー メッセージが表示され、Docker Desktop へのアクセスが拒否されます。 そして、この場合、彼らはレジストリとしてArtifactoryにアクセスすることはできません。

テストしてみてください

すべてが正しく構成されていることを確認する簡単な方法は、開発者が作成されたばかりの許可リストにないリポジトリへのアクセスを試みることです。 システムがそれへのアクセスを許可しない場合は、正しく行ったことがわかります。 開発者がリストにないリポジトリにアクセスできる場合は、上記の手順を再確認して、すべての設定が正しいことを確認してください。

結論

これで完了です。 セットアップが成功すると、開発者と管理者に図2のような画面が表示され、Docker Hubと選択したJFrog Artifactoryリポジトリの両方にアクセスできることが示されます。 Dockerデスクトップ機能を使用してレジストリをスムーズに制御できるだけでなく、JFrogの顧客向けに無制限のDocker Hubプルを利用できます。

許可されたレジストリとして設定されたArtifactoryを示すdockerハブレジストリアクセス管理のスクリーンショット。
図2: Artifactoryを視覚化するDocker Hubレジストリアクセス管理は、許可されたレジストリとして正常に設定されました。

JFrog を無料で試して、 Dockerデスクトップで数分で作業を始めましょう。

さらに詳しく

フィードバック

0 「エンタープライズ向けのDockerデスクトップとJFrogアーティファクトの使用」に関する考え