原文

 http: server gave HTTP response to HTTPS client

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

出现这问题的原因是:Docker自从1.3.X之后docker registry交互默认使用的是HTTPS,但是搭建私有镜像默认使用的是HTTP服务,所以与私有镜像交时出现以上错误。

这个报错是在本地上传私有镜像的时候遇到的报错:

http: server gave HTTP response to HTTPS client & Get https://192.168.2.119/v2/: dial tcp 192.168.2.119:443: getsockopt: connection refused 随笔 第1张

解决办法是:在docker server启动的时候,增加启动参数,默认使用HTTP访问:

 vim /usr/lib/systemd/system/docker.service

http: server gave HTTP response to HTTPS client & Get https://192.168.2.119/v2/: dial tcp 192.168.2.119:443: getsockopt: connection refused 随笔 第2张

在12行后面增加  --insecure-registry  ip:5000

 

修改好后重启docker 服务

systemctl daemon-reload 

systemctl restart docker

http: server gave HTTP response to HTTPS client & Get https://192.168.2.119/v2/: dial tcp 192.168.2.119:443: getsockopt: connection refused 随笔 第3张

 

 

重启docker服务后,将容器重启

docker start $(docker ps -aq)

 

 

如果上述方法还是不能解决,还可以通过以下办法解决:

1.vim  /etc/docker/daemon.json    增加一个daemon.json文件

{ "insecure-registries":["192.168.1.100:5000"] }
保存退出

2.重启docker服务
systemctl daemon-reload
systemctl restart docker

3.重启容器
4.上传镜像
docker push 。。。。

 

 

 

 

第二个问题是:Get https://192.168.2.119/v2/: dial tcp 192.168.2.119:443: getsockopt: connection refused

http: server gave HTTP response to HTTPS client & Get https://192.168.2.119/v2/: dial tcp 192.168.2.119:443: getsockopt: connection refused 随笔 第4张

原因:没有指定镜像要上传的地址,站点。默认的是docker.io

解决方法:docker tag <imagesname> <ip:port/image>

                  docker push ip:port/image 

http: server gave HTTP response to HTTPS client & Get https://192.168.2.119/v2/: dial tcp 192.168.2.119:443: getsockopt: connection refused 随笔 第5张

http: server gave HTTP response to HTTPS client & Get https://192.168.2.119/v2/: dial tcp 192.168.2.119:443: getsockopt: connection refused 随笔 第6张

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄