web-dev-qa-db-ja.com

Dockerレジストリとしてのアーティファクト

このビデオに示すように、アーティファクトをDockerレジストリとして設定しようとしました: http://www.jfrog.com/video/artifactory-docker-integration/

ただし、アーティファクトにSSLがインストールされていないため、-insecure-registryフラグを使用しています。 ( docker buildpublishプラグインのエラー および プライベートdocker-registryへのリモートアクセス に示されているように)

とにかく、DockerレジストリURLとしてアーティファクトを把握する方法がわからないので、これを行うことができます:curl -k -uusername:password " http://sdpvvrwm812.ib.tor.company.com:8081/artifactory/api/docker/docker-images "

このページ http://www.jfrog.com/confluence/display/RTF/Docker+Repositories は、リバースプロキシと呼ばれるものが必要になる可能性があることを下部に示しています。これは本当ですか?もしそうなら、どうすればそのようなものをインストールできますか?

11
Adrian

Artifactoryの前にリバースプロキシが必要な理由は、Dockerクライアントの制限に関連しています。レジストリパスを指定するときにコンテキストパスを使用することはできません。例:sdpvvrwm812.ib.tor.company.com:8081 /artifactory/api/docker/docker-imagesは無効です。
Dockerクライアントは、すべてのイメージに対して1つの大きなレジストリを使用していることを前提としていますが、Artifactoryを使用すると、同じサーバー上の複数のレジストリ(リポジトリ)を管理できます。

この問題を解決するには、Dockerクライアントがルートコンテキストにリクエストを送信し、Artifactoryの正しいリポジトリパスにそれらのリクエストを転送できるようにするリバースプロキシを設定する必要があります。たとえば、リクエストをsdpvvrwm812.ib.tor.company.com:8888/からsdpvvrwm812.ib.tor.company.com:8081/artifactory/api/docker/docker-imagesに転送します

Artifactoryのドキュメントには、 NginXApache 、および HAProxy の構成例が含まれています。
DockerレジストリAPIv1とv2には異なる構成があることに注意してください。

リバースプロキシを設定した後、DockerクライアントはArtifactoryにアクセスするためにプロキシを使用する必要があります。

--insecure-registryフラグを使用している場合は、SSL証明書を構成する必要はありません。古いバージョンのDockerでは、このフラグが 導入 (Docker 1.3.2)になる前は、必須の要件でした。

18