8

インターネットにアクセスできるサーバー(Aと名付けましょう)があり、そこから公式のdocker.ioレジストリからイメージを取得できます。

セキュリティ上の理由からこれと同じアクセス権を持つことはできませんが、A へのアクセスは許可されている他のサーバー (B、C) もあります。

また、B と C から使用できるプライベート レジストリを A にインストールすることにしました。

このレジストリをプロキシとして機能させることは可能ですか? B から公式イメージをプルしたいときに A を介して行うことができますか?

4

4 に答える 4

13

手順 1: プロキシ構成でレジストリ バージョン 2 以降を実行する

プロキシ構成で docker registry を実行する必要があります。

イニシャルを取得するにはconfig.yml:

docker run -it --rm --entrypoint cat registry:2 /etc/docker/registry/config.yml > `pwd`/config.yml

に以下を追加しますconfig.yml

proxy:
      remoteurl: https://registry-1.docker.io

次に、docker レジストリを次のコマンドで開始しますconfig.yml

docker run -d --restart=always -p 5000:5000 --name docker-registry-proxy -v `pwd`/config.yml:/etc/docker/registry/config.yml registry:2

ステップ 2: クライアントで Docker デーモンを構成する

Docker for Mac (Docker ツールボックスや boot2docker ではない) を使用している場合は、http://<proxy-ip>:5000[詳細設定] タブのミラー セクションに追加する だけです。ここに画像の説明を入力

Docker for Mac を再起動します。

--registry-mirror=http://<proxy_ip>:5000それ以外の場合は、クライアントまたは Docker Toolbox VM で次のようにして、docker デーモンを実行する必要があります。

docker --registry-mirror=https://<my-docker-mirror-host> daemon

ステップ 3: プロキシが機能していることを確認します。

まだ持っていない画像を取得してみてください:

docker pull nginx

次に、プロキシ カタログに新しいイメージがあることを確認します。

curl https://<proxy_ip>:5000/v2/_catalog

プルしたばかりの画像を含む何かが返されるはずです。

"repositories":["library/nginx"]}
于 2016-09-27T06:45:01.087 に答える
7

一方、それは可能です:

https://blog.docker.com/2015/10/registry-proxy-cache-docker-open-source/

https://docs.docker.com/registry/recipes/mirror/

ただし、そのようなレジストリへのプッシュはサポートされていません。

https://docs.docker.com/registry/configuration/#proxy

于 2016-01-29T13:42:29.520 に答える