如何解決docker不能push給http

如何解決docker不能push給http

如何解決docker不能push給http?

系統環境:centos7docker版本:?1.12.3(注意版本,可能存在不同版本設置不同的情況)docker registry版本:2.4.1

問題:

成功安裝docker registry,在瀏覽器中輸入http://192.168.1.100:5000/v2,成功返回json數據。在push 到docker registry時,報:

[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 registry未采用https服務所致。一種處理方式是把客戶對地址“192.168.1.100:5000”請求改為http。

目前很多文章都是通過修改docker的配置文件“etc/systemconfig/docker”,重啟docker來解決這個問題。但發現docker1.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:ProgramDatadockerconfig”。可以在該目錄下創建”daemon.json“文件,解決此問題。

相關參考:docker教程

以上就是如何解決

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享