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查看,具體目錄信息