私有registry
部署私有registry
通过docker提供的镜像registry部署私有仓库,下载仓库registry
docker pull registry
启动容器:
docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
命令说明:
1.registry默认会把镜像保存在/var/lib/registry目录下。将主机的/opt/registry目录挂载到该目录,即可实现将镜像保存到主机的/opt/registry目录。
2.-p 5000:5000 将仓库5000端口绑定到宿主机5000端口
3.--restart=always 自动重启
查看是否已启动
docker ps | grep registry
浏览器查看 http://ip:5000/v2
推送镜像
通过将镜像push到registry来验证,首先将主机的registry镜像命名为符合仓库要求registry_url:port/ImageName:tag的格式
查看镜像 docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
my latest 2857cfc72122 3 hours ago 379MB
镜像打包 docker tag my 192.168.1.123:5000/my
推送镜像:docker push 192.168.1.123:5000/my
此时可能会报如下错误:
The push refers to repository [192.168.1.123:5000/my]
Get https://192.168.1.123:5000/v2/: http: server gave HTTP response to HTTPS client
这是因为我们启动的registry服务不是安全可信赖的。这时需要修改客户端docker的配置文件/etc/docker/daemon.json,添加下面蓝色的内容(registry服务地址):
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"],
"insecure-registries":["192.168.1.123:5000"]
}
"registry-mirrors": ["https://pee6w651.mirror.aliyuncs.com"] 是阿里云代理的Registry Hub仓库的地址,可以加快国内访问Registry Hub仓库的速度。
重启docker: systemctl restart docker 重启上传即可。
查看仓库
http://192.168.1.123:5000/v2/_catalog
拉取镜像
删除已存在镜像docker rmi