如何解決docker不能push給http?
系統環境:centos7
docker版本: 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:\ProgramData\docker\config\」。可以在該目錄下建立”daemon.json“文件,解決此問題。
相關參考:docker教學
以上是如何解決docker不能push給http的詳細內容。更多資訊請關注PHP中文網其他相關文章!