docker pull docker.io/registry
启动registry
docker run -d -p 5000:5000 --name=registry --restart=always --privileged=true --log-driver=none -v /home/data/registrydata:/tmp/registry registry
更名并推送
docker tag docker.io/nginx:latest registry:5000/nginx:latest
docker push registry:5000/nginx:latest
dial tcp: lookup registry on 114.114.114.114:53: no such host
推送失败无法找到registry,需要配置dns(以后补充),这里使用ip地址
docker tag docker.io/nginx:latest 192.168.50.131:5000/nginx:latest
再次推送
docker push 192.168.50.131:5000/nginx:latest
docker push 192.168.50.131:5000/nginx:latest The push refers to a repository [192.168.50.131:5000/nginx] Get https://192.168.50.131:5000/v1/_ping: http: server gave HTTP response to HTTPS client 这个问题可能是由于客户端采用https,docker registry未采用https服务所致。一种处理方式是把客户对地址“192.168.1.100:5000”请求改为http。
解决办法:修改/etc/docker/daemon.json,添加,如果node需要使用此仓库,需要咋每个node上添加
{ "insecure-registries":["192.168.50.131:5000"]}
重启dokcer服务,systemctl restart docker.service,重启docker后需要手动启动以前的容器
此时推送成功,通过在node上docker pull 192.168.50.131:5000/nginx:latest,确认是否拉取成功
镜像文件保存在master目录/home/data/registrydata,对应register容器/tmp/registry目录。
但是默认容器镜像保存位置为/var/lib/docker,需要设置为/tmp/registry
使用docker inspect registry查看,具体目录信息