パートナーのJFrogが書いたこの投稿では、JFrog ArtifactoryとDocker Desktopの操作方法を概説しています。
多くの企業がJFrog ArtifactoryをDockerおよびHelmレジストリとして利用していますが、コンテナサービスを管理するためにDocker Desktopを戦略的に利用しています。
この記事では、 JFrog Artifactory をDockerレジストリとして動作させ、会社のリポジトリ(ローカル、リモート、仮想など)全体でコンテナイメージのプッシュとプルを管理するように Docker Desktop を設定する方法について説明します。 また、JFrog ArtifactoryをDocker Desktopと組み合わせて、ポートフォリオ全体でDockerイメージの移動をきめ細かく制御する方法も紹介します。
始める前に
このチュートリアルでは、次の項目が既に設定されている必要があります。
- 会社を通じたアクティブな 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インスタンスを管理することができます。
- 組織の所有者として Docker Hub アカウントにサインインします。
- 組織を選択し、[組織] ページの [ 設定 ] タブに移動して、[ レジストリ アクセス管理] を選択します (図 1)。
- レジストリアクセス管理 で 有効 を選択し、Artifactoryレジストリのパーミッションの設定を開始します。
- Artifactoryをリストに追加するには、 追加 を選択し、該当するフィールドにレジストリの詳細を入力します。 次に、 [ 作成] を選択します。
- レジストリリストにArtifactory が表示されていることを確認し、 保存して適用を選択します。
- [ アクティビティ] タブで変更が保存されたことを確認できます。 無制限のレジストリを追加できることに注意してください。
アクセスを普遍的に適用する
次に、 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
必須ではありません。 強制認証には、次の利点があります。
- 管理者は、 イメージ アクセス管理などの機能を構成できます。これにより、チーム メンバーは次のことができます。
- Docker Hub 上の 信頼できるコンテンツ にのみアクセスできます
- 指定したカテゴリの画像からのみプルする
- 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プルを利用できます。
JFrog を無料で試して、 Dockerデスクトップで数分で作業を始めましょう。
さらに詳しく
- Docker デスクトップの最新リリースを入手します。
- 質問がありますか? Docker コミュニティがお手伝いします。
- ドッカーは初めてですか?始めましょう。