搭建 docker registry 私有仓库并解决报错Get https://xxx.xxx.xxx.xxx:5000/v1/_ping: http: server gave HTTP resp

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sureSand/article/details/82194002

为什么要搭建 docker 私有仓库
原因有几个:

  • 项目需要,不希望将项目放到 docker hub 上。
  • 环境需求,考虑网络、效率的问题,希望在私有服务器上建立自用的仓库,提高便利性和访问速度。
  • 可以做更多的个性化配置。
  • 用什么搭建 docker 私有仓库
  • docker 官方提供了 registry 的镜像,可以使用它来建私有仓库。

本次搭建的环境
在这里先说明一下本文的实验环境:

docker 仓库服务器: ubuntu ip地址:192.168.1.101
默认安装docker

1.先拉取官方 registry 镜像,并启动 registry 容器:

docker pull registry

docker run -d   --name=my-docker-registry  --restart=always -p 5000:5000   -v  /opt/data/registry:/tmp/registry registry  #启动一个名字为 my-docker-registry 的容器,端口映射到宿主机的5000,挂载宿主机目录 /opt/data/registry 到容器的 /tmp/registry ,用于存储 push 进去的镜像文件。   

2.从dockerhub获取镜像并且打上私有仓库的tag

docker pull nginx
docker  tag  nginx:latest    192.168.1.101:5000/my-nginx

3.push到本地registry

docker push 192.168.1.101:5000/my-nginx

这一步可能会报错:
Get https://192.168.1.101:5000/v2/: http: server gave HTTP response to HTTPS client

解决办法,运行命令:

        echo '{ "insecure-registries":["xxx.xxx.xxx.xxx:5000"] }' > /etc/docker/daemon.json

        systemctl restart docker

4.重新push并检查镜像是否上传成功:

curl localhost:5000/v2/_catalog
{"repositories":["my-nginx"]}

如图的话就push成功

猜你喜欢

转载自blog.csdn.net/sureSand/article/details/82194002