Docker上传镜像到私有库的报错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker上传镜像到私有库的报错相关的知识,希望对你有一定的参考价值。
1、查看docker的版本信息# docker version Client: Version:18.03.0-ce API version:1.37 Go version:go1.9.4 Git commit:0520e24 Built:Wed Mar 21 23:09:15 2018 OS/Arch:linux/amd64 Experimental:false Orchestrator:swarm Server: Engine: Version:18.03.0-ce API version:1.37 (minimum version 1.12) Go version:go1.9.4 Git commit:0520e24 Built:Wed Mar 21 23:13:03 2018 OS/Arch:linux/amd64 Experimental:false
2、搭建本地私有仓库
# mkdir -p /opt/data/registry # sudo docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry Unable to find image 'registry:latest' locally latest: Pulling from library/registry 81033e7c1d6a: Pull complete b235084c2315: Pull complete c692f3a6894b: Pull complete ba2177f3a70e: Pull complete a8d793620947: Pull complete Digest: sha256:672d519d7fd7bbc7a448d17956ebeefe225d5eb27509d8dc5ce67ecb4a0bce54 Status: Downloaded newer image for registry:latest 3e7d9879c53bc6d0e9001c939933dc17a71a861d85f8bf5942e4873a78fd0d65 # docker images REPOSITORY TAG IMAGE ID CREATED SIZE test/centos v1 f6874eba64af 4 minutes ago 69.8MB ubuntu latest 452a96d81c30 10 days ago 79.6MB hello-world latest e38bc07ac18e 3 weeks ago 1.85kB centos latest e934aafc2206 4 weeks ago 199MB registry latest d1fd7d86a825 3 months ago 33.3MB google/cadvisor latest 75f88e3ec333 5 months ago 62.2MB
3、为容器做标记
# docker tag ubuntu:latest 10.0.0.143:5000/test # docker images REPOSITORY TAG IMAGE ID CREATED SIZE test/centos v1 f6874eba64af 6 minutes ago 69.8MB 10.0.0.143:5000/test latest 452a96d81c30 10 days ago 79.6MB ubuntu latest 452a96d81c30 10 days ago 79.6MB hello-world latest e38bc07ac18e 3 weeks ago 1.85kB centos latest e934aafc2206 4 weeks ago 199MB registry latest d1fd7d86a825 3 months ago 33.3MB google/cadvisor latest 75f88e3ec333 5 months ago 62.2MB
4、上传镜像到仓库
# docker push 10.0.0.143:5000/test The push refers to repository [10.0.0.143:5000/test] Get https://10.0.0.143:5000/v2/: http: server gave HTTP response to HTTPS client
报错说明:Docker从1.3.x之后,与docker registry交互默认使用的是https,但是此处搭建私有仓库却只提供http服务,所以当和私有仓库交互时报上述错误。因此需要在启动docker server时增加启动参数为默认使用http访问
5、解决方法:
# vim /usr/lib/systemd/system/docker.service # ExecStart=/usr/bin/dockerd ExecStart=/usr/bin/dockerd --registry-mirror=https://ag3w25ij.mirror.aliyuncs.com --insecure-registry 10.0.0.143:5000 # systemctl restart docker.service Warning: docker.service changed on disk. Run 'systemctl daemon-reload' to reload units. # systemctl daemon-reload # systemctl restart docker.service # docker push 10.0.0.143:5000/test The push refers to repository [10.0.0.143:5000/test] Get http://10.0.0.143:5000/v2/: dial tcp 10.0.0.143:5000: getsockopt: connection refused # lsof -i :5000 # sudo docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry 2366bf18e5e14a776a96342598091f699356a619faf3bbe8e0b7848f017290fe # docker push 10.0.0.143:5000/test The push refers to repository [10.0.0.143:5000/test] 059ad60bcacf: Pushed 8db5f072feec: Pushed 67885e448177: Pushed ec75999a0cb1: Pushed 65bdd50ee76a: Pushed latest: digest: sha256:90f24abe180424046a5d53f6fc6f9fdb8f79b835cb2fd7d1a782e4c30dfb5dcc size: 1357
以上是关于Docker上传镜像到私有库的报错的主要内容,如果未能解决你的问题,请参考以下文章
docker 1.12.3版本搭建私有仓库,上传镜像报错:server gave HTTP response to HTTPS client”