5

自己ホスト型の Docker レジストリ v2 を使用しようとしています。レジストリ v2 コンテナーを実行しているホスト サーバー (coreos) でローカルに動作する docker イメージをプッシュできるはずです。ただし、別のマシン (coreos、同じバージョン) でレジストリにプッシュしようとすると、v1 にプッシュしようとすると、次のエラーが発生します。

Error response from daemon: v1 ping attempt failed with error: Get 
https://172.22.22.11:5000/v1/_ping: dial tcp 172.22.22.11:5000: i/o timeout. 
If this private registry supports only HTTP or HTTPS with an unknown CA 
certificate, please add `--insecure-registry 172.22.22.11:5000` to the 
daemon's arguments. In the case of HTTPS, if you have access to the registry's 
CA certificate, no need for the flag; simply place the CA certificate at 
/etc/docker/certs.d/172.22.22.11:5000/ca.crt 

両方のマシンの docker 実行可能ファイルは v1.6.2 です。一方が機能し、v2 にプッシュしているのに、もう一方が v1 であるのはなぜですか?

レジストリのリポジトリは次のとおりです: https://github.com/docker/distribution

4

3 に答える 3

2

リモートでアクセスする前にレジストリを保護するか、すべての Docker デーモンが安全でないレジストリにアクセスすることを明示的に許可する必要があります。

レジストリを保護する最も簡単な方法は、サーバー用の SSL 証明書を購入することですが、証明書に自己署名してクライアントに配布することもできます。

--insecure-registry myregistrydomain.com:5000安全でないアクセスを許可するには、レジストリにアクセスする必要があるすべてのデーモンに引数を追加します。(明らかに、ドメイン名とポートを自分のものに置き換えてください)。

完全な手順 (エラー メッセージの例を含む) は、https ://github.com/docker/distribution/blob/master/docs/deploying.md で入手できます。

エラー メッセージに関しては、Docker は最初に v2 を使用しようとして、セキュリティの問題のために失敗し、次に v1 を試行して再び失敗したと思います。

于 2015-06-12T15:41:40.967 に答える