docker が http にプッシュできない問題を解決するにはどうすればよいですか?
システム環境: centos7
docker バージョン: 1.12.3 (バージョンに注意してください。バージョンによって設定が異なる場合があります)
docker レジストリバージョン :2.4.1
質問:
docker レジストリが正常にインストールされ、ブラウザに http://192.168.1.100:5000/v2 と入力され、json データが正常に返されました。 docker レジストリにプッシュすると、次のレポートが表示されます:
[root@master sysconfig]# docker push 192.168.1.100:5000/registry:2.4.1The push refers to a repository [192.168.1.100:5000/registry] Get https://192.168.1.100:5000/v1/_ping: http: server gave HTTP response to HTTPS client
この問題は、クライアントが https を使用し、docker レジストリが https サービスを使用していないことが原因である可能性があります。これに対処する 1 つの方法は、クライアントのアドレス「192.168.1.100:5000」のリクエストを http に変更することです。
現在、多くの記事では、docker 構成ファイル「etc/systemconfig/docker」を変更し、docker を再起動することでこの問題を解決しています。ただし、docker バージョン 1.12.3 にはこのファイルがないことがわかり、オンラインでこのファイルを作成し、対応する内容を入力しましたが、docker を再起動しても効果がなく、このエラーは依然として報告されました。
解決策:
「/etc/docker/」ディレクトリに「daemon.json」ファイルを作成します。ファイルに次のように書き込みます:
{ "insecure-registries":["192.168.1.100:5000"] }
保存して終了した後、docker を再起動します。問題は解決しました:
[root@master docker]# docker push 192.168.1.100:5000/registry:2.4.1The push refers to a repository [192.168.1.100:5000/registry] ee8e809cfde5: Pushed ba20d499f984: Pushed 705e35f12f24: Pushed 42755cf4ee95: Pushed2.4.1: digest: sha256:b66c4af9577744ae6d32e975808230e2ff558a5d50a7968d5102a900e147f3d5 size: 1158
window Server 2016 では、デフォルトのインストール Docker 構成ファイルは「C:\ProgramData\docker\config\」にあります。この問題を解決するには、このディレクトリに「daemon.json」ファイルを作成します。
関連資料:docker チュートリアル
以上がdocker が http にプッシュできない問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。