下载registry镜像

1
docker pull registry

运行registry容器

因为是用的容器来做本地镜像仓库的,默认情况下存储的内容是在容器内部的,当容器被删除时,则存放在容器中的镜像也会丢失。
所以一般情况下载运行registry容器时,可以使用一个本机目录挂载到容器的/var/lib/registry目录,这样当registry容器删除时,
上传到本地镜像仓库的镜像文件就不会随着容器的删除而丢失了。
这里我使用的是本机目录/opt/data/bmob-dockerhub

1
docker run -d -p 5000:5000 -v /opt/data/bmob-dockerhub:/var/lib/registry --name bmob-dockerhub registry

测试上传镜像到本地仓库中

1.首先用一个小镜像来做测试,这里是下载的busybox镜像

1
docker pull busybox

2.然后打个tag

1
docker tag busybox 192.168.1.13:5000/busybox

这里是用192.168.1.13这台机做本地仓库的

3.push到仓库

1
docker push 192.168.1.13:5000/busybox

可能遇到的错误:
The push refers to a repository [192.168.1.13:5000/busybox]
Get https://192.168.1.13:5000/v2/: http: server gave HTTP response to HTTPS client

解决方法:
在/etc/docker/daemon.json文件中添加下面一条数据
{ “insecure-registries”: [“192.168.1.13:5000”] }
然后重启

1
2
systemctl daemon-reload
systemctl restart docker

将registry容器运行起来,再push就可以成功了

测试从本地仓库中拉取镜像

1.先将本机中的busybox镜像和192.168.1.13:5000/busybox镜像删除

2.拉取镜像

1
docker pull 192.168.1.13:5000/busybox