docker私有仓库
docker一直存在个很不方便的问题,在国内网络环境下使用经常会出现无法直接拉取镜像的问题,哪怕更换了加速源,有的时候效果还是不尽如意。
我自己的阿里云服务器有的时候拉取镜像会比自建的服务器速度略快,且能拉取到自建服务器拉取不到的镜像。想在自建服务器使用这些镜像就只能曲线救国一把,在阿里云上搭建一个私有仓库,从这个私有仓库上拉取镜像。
首先在云服务器上创建一个文件夹作为私有仓库的目录
sudo mkdir /home/myhub
chmod 777 /home/myhub -R
然后我们拉取官方registry镜像并启动私有仓库
docker run -d -p 5000:5000 -v /home/myHub registry
这里我们使用ikuai-exporter作为测试镜像来拉取,首先在云服务器上正常拉取镜像
sudo docker pull jakes/ikuai-exporter
拉取完成后我们查看下镜像的ID和tag
sudo docker image ls
给拉取的ikuai-exporter镜像重新标记
sudo tag jakes/ikuai-exporter:latest 云服务器ip:5000/ikuai-exporter:myhub
由于docker拉取镜像不支持http协议所以我们需要在daemon.json文件中添加私有仓库地址
在镜像加速地址之后添加如下内容
"insecure-registries": [
"服务器ip:5000"
]
wq保存文件后退出,重启docker服务
sudo systemctl restart docker
随后上传镜像到私有仓库
docker push 服务器ip:5000/ikuai-exporter:myhub
等待一段时间后查看私有仓库中的内容
curl 服务器ip:5000/v2/_catlog
可以看到私有仓库中已经存在我们上传的镜像了
然后到需要拉取镜像的服务器上配置私有仓库地址,也是在daemon.json文件中配置,加速地址后添加一样的内容
"insecure-registries": [
"服务器ip:5000"
]
同样要重启docker服务,重启完成后从私有仓库拉取镜像
docker pull 服务器ip:5000/ikuai-exporter:myhub
成功拉取。