如何部署本地dockers镜像源

最近许多公网的docker镜像源不能用了,只有用翻墙的办法去外网下载镜像,docker save导出镜像包,docker load在本地导入,docker push到本地部署的镜像服务器,然后Kubernetes就可以使用本地镜像服务器里的镜像了。

这里有个关键步骤,就是搭建本地docker镜像服务器了,鉴于容器部署的便捷性,我们使用容器部署docker镜像服务器。

1、在外网下载docker镜像服务器的镜像:registry:2

docker pull registry:2

docker save registry:2 > registry-2-image.tar.gz

docker load < registry-2-image.tar.gz

2、启动容器

docker run -d --restart=always -p "5001:5000" --network bridge --name "qinhao-registry" registry:2

这个命令创建的容器,对外服务端口是5001,且接受来自所有机器的请求。

3、客户端docker修改配置

此时,如果客户端 docker pull/push 镜像会有报错提示:

server gave HTTP response to HTTPS client

这是因为 docker 客户端默认使用 https 请求镜像,而我为了简单,私有镜像服务器使用的是http。

这就要修改客户端docker的配置文件:

vim /etc/docker/daemon.json

或(snap安装)

vim /var/snap/docker/current/config/daemon.json

对私有镜像服务器,指定非https连接,例如,我的registry:2容器的IP和Port为172.32.155.57:5001,在daemon.json中加入:

"insecure-registries":["172.32.155.57:5001"]

客户端重启docker:

snap restart docker

service docker restart/systemctl restart docker

客户端修改镜像tag,新tag中包括服务器的IP和Port:

docker tag milvusdb/etcd:3.5.5-r4 172.32.155.57:5001/etcd:3.5.5-r4

docker push 172.32.155.57:5001/etcd:3.5.5-r4

其它客户端pull

docker push 172.32.155.57:5001/etcd:3.5.5-r4

4、查看私有docker镜像服务器的内容

curl -X GET http://172.32.155.57:5001/v2/_catalog

curl -X GET http://172.32.155.57:5001/v2/milvus/tags/list

参考

【解决方法】Docker push 报错「server gave HTTP response to HTTPS client」_docker push response-CSDN博客

docker pull 报missing signature key错误_docker pull missing signature key-CSDN博客

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值