如何解決docker不能push給http?
系統(tǒng)環(huán)境:centos7
docker版本: 1.12.3(注意版本,可能存在不同版本設(shè)置不同的情況)
docker registry版本:2.4.1
問題:
成功安裝docker registry,在瀏覽器中輸入http://192.168.1.100:5000/v2,成功返回json數(shù)據(jù)。在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服務(wù)所致。一種處理方式是把客戶對地址“192.168.1.100:5000”請求改為http。
目前很多文章都是通過修改docker的配置文件“etc/systemconfig/docker",重啟docker來解決這個問題。但發(fā)現(xiàn)docker1.12.3版本并無此文件,根據(jù)網(wǎng)上創(chuàng)建此文件,并填入相應(yīng)內(nèi)容,重啟docker無效果,仍然報此錯誤。
解決方法:
在”/etc/docker/“目錄下,創(chuàng)建”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,默認(rèn)安裝docker的配置文件在“C:ProgramDatadockerconfig”??梢栽谠撃夸浵聞?chuàng)建”daemon.json“文件,解決此問題。
相關(guān)參考:docker教程