2017-01-24 6 views
1

にプッシュされた画像を引くことはできません。ドッカー:</p> <p>ドッキングウィンドウmy-private-repo.xyz.com:443/platform/abc</p> <p>私は、次の取得エラーを引く:私はこれがないプライベートレジストリ

Pulling repository my-private-repo.xyz.com:443/platform/abc 
Error: Status 400 trying to pull repository platform/abc: "{\n \"errors\" : [ {\n \"status\" : 400,\n \"message\" : \"Unsupported docker v1 repository request for 'my-private-repo'\"\n } ]\n}" 

マイドッキングウィンドウデーモンは、このように構成されています。ここでは

{ 
    "insecure-registries" : [ 
    "my-private-repo.xyz.com:443" 
    ], 
    "experimental" : false 
} 

は私のドッキングウィンドウの情報です:

Containers: 0 
Running: 0 
Paused: 0 
Stopped: 0 
Images: 15 
Server Version: 1.13.0 
Storage Driver: aufs 
Root Dir: /var/lib/docker/aufs 
Backing Filesystem: extfs 
Dirs: 22 
Dirperm1 Supported: true 
Logging Driver: json-file 
Cgroup Driver: cgroupfs 
Plugins: 
Volume: local 
Network: bridge host macvlan null overlay 
Swarm: inactive 
Runtimes: runc 
Default Runtime: runc 
Init Binary: docker-init 
containerd version: 03e5862ec0d8d3b3f750e19fca3ee367e13c090e 
runc version: 2f7393a47307a16f8cee44a37b262e8b81021e3e 
init version: 949e6fa 
Security Options: 
seccomp 
    Profile: default 
Kernel Version: 4.9.4-moby 
Operating System: Alpine Linux v3.5 
OSType: linux 
Architecture: x86_64 
CPUs: 4 
Total Memory: 1.952 GiB 
Name: moby 
ID: WW55:6DVS:DJCJ:3NXI:2CDX:44JW:F6IK:P2JU:LM7X:B76Y:HC3G:RCEU 
Docker Root Dir: /var/lib/docker 
Debug Mode (client): false 
Debug Mode (server): true 
File Descriptors: 16 
Goroutines: 27 
System Time: 2017-01-24T21:30:22.279581628Z 
EventsListeners: 1 
No Proxy: *.local, 169.254/16 
Registry: https://index.docker.io/v1/ 
Experimental: false 
Insecure Registries: 
my-private-repo.xyz.com:443 
127.0.0.0/8 
Live Restore Enabled: false 

上記のドッカー情報を追加しました。どんな解決策ですか?私が間違ってやっていることを指摘していますか?

ドッキングウィンドウのクライアントのバージョンはこれです:

13:39 $ docker --version 
Docker version 1.13.0, build 49bf474 

UPDATE:

解決しました。イメージがリポジトリに存在しない場合、Dockerがあいまいなエラーメッセージをスローしているように見えます。私がこれをしていたときに:

docker pull my-private-repo.xyz.com:443/platform/abc 

ダウンロードするには、「最新の」タグを使用してイメージをプルする予定でした。リポジトリにはこのようなイメージは存在しません。しかし、スローされたエラーは間違っていた。

また、これにコメントで示唆したように私はまた私のデーモンの設定を変更:

{ 
    "experimental" : false, 
    "disable-legacy-registry" : true, 
    "insecure-registries" : [ 
    "my-private-repo.xyz.com:443" 
    ] 
} 

そして今、私は、画像を引くことができています。

+0

ドッカークライアントのバージョンとレジストリのバージョンは? 'docker info'を投稿できますか? –

+0

@HaomingZhang元の質問にドッカー情報を追加しました – itpragmatik

+0

レジストリバージョンも投稿できますか?あなたのドッカークライアントがV1レジストリに落ちたようです。 '--disable-legacy-registry'オプションが役立つかもしれません:https://github.com/docker/docker/issues/26142#issuecomment-271867508 –

答えて

1

Dockerクライアントでレジストリからイメージをプルするとき、クライアントはレジストリにV2バージョン要求を最初に送信しようとします。この要求がエラーで返された場合(つまり、イメージが存在しない場合、またはリクエストが許可されていない場合)、ドッカークライアントはフォールバックして別のV1バージョン要求を送信しようとします。

レジストリが新しいバージョンで、V1 APIをサポートしていないため、レジストリは2番目のV1要求で「サポートされていないドッカーv1リポジトリ要求」などのエラーをスローします。

これを避けるために、Dockerの開発者はデフォルトでDockerクライアントに--disable-legacy-registryオプションを追加する予定です。このオプションがtrueに設定されている場合、DockerクライアントはV1バージョン要求を再度送信しようとはしませんが、最初のV2要求から元のエラーメッセージを返します。詳細情報については

、この問題を確認してください。https://github.com/docker/docker/issues/26142#issuecomment-271867508

0

あなたが取得している場合、これはあなたがそのバージョン1.9より少ないドッカーを使用していることを意味します。 Dockerはこのバージョンのv1レジストリを廃止しました。これらの次の事

  1. チェックドッキングウィンドウのバージョンdocker --version、あなたは、あなたがV1で構成されているレジストリをチェックする必要がありドッカーで複数のレジストリを設定している場合、ドッキングウィンドウに登録されたレジストリのdocker info
  2. チェックを確認してくださいレジストリ。

docker run --rm --pid=host alpine ps aux | grep dockerd

上記のコマンドは、多くのドッカーレジストリがシステムに設定されている方法を紹介します。複数ある場合は、1つずつ削除して設定してください。

複数のレジストリ設定がある場合は、各レジストリをチェックし、v2がサポートされているかどうかを確認してください。

レジストリが1つしか設定されておらず、この問題に直面している場合は、Dockerのバージョンを1.9以上にアップグレードすることをお勧めします。

関連する問題