搭建 docker registry 私有仓库并解决报错Get https://xxx.xxx.xxx.xxx:5000/v1/_ping: http: server gave HTTP resp
为什么要搭建 docker 私有仓库原因有几个:项目需要,不希望将项目放到 docker hub 上。环境需求,考虑网络、效率的问题,希望在私有服务器上建立自用的仓库,提高便利性和访问速度。可以做更多的个性化配置。用什么搭建 docker 私有仓库docker 官方提供了 registry 的镜像,可以使用它来建私有仓库。本次搭建的环境在这里先说明一下本文的实验环境:...
·
为什么要搭建 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成功
更多推荐
已为社区贡献3条内容
所有评论(0)