主要參考了https://blog.tfm.ro/setup-and-run-a-standalone-private-docker-registry-v2/和http://www.javashuo.com/article/p-ofdehcsb-cc.html。html
1、安裝docker-distributionnginx
yum install -y docker-distribution
安裝完成後,啓動服務:docker
systemctl enable docker-distribution.service systemctl start docker-distribution.service
2、配置config.yamljson
在/etc/docker-distribution/registry目錄下編輯config.yaml文件以下:api
version: 0.1 log: fields: service: registry storage: cache: layerinfo: inmemory filesystem: rootdirectory: /var/lib/registry #可更改 http: addr: [倉庫運行的IP地址]:[倉庫運行的端口,可設爲5000]
3、修改daemon.jsonbash
在/etc/docker目錄下編輯daemon.json文件,在大括號裏增長一行:curl
"insecure-registries": ["倉庫IP:倉庫端口"],
隨後重啓docker:測試
systemctl restart docker
這樣就完成了私有倉庫的搭建。url
4、測試上傳3d
用docker images查看已下載的鏡像,選擇一個,例如nginx,打上標籤:
docker tag [nginx鏡像的ID] [倉庫IP]:[倉庫端口]/nginx
以後,用docker push命令將打上標籤後的鏡像上傳至私有倉庫:
docker push [倉庫IP]:[倉庫端口]/nginx
看到相似於下面這樣的提示後,說明上傳成功:
4258832b2570: Pushed 683a28d1d7fd: Pushed d626a8ad97a1: Pushed latest: digest: sha256:b3cd8d196926586f70a060b1b61a7c34dd716effe0daf5cf68419ec0bc21ab3d size: 948
5、測試查詢
Docker registry v2的API與v1差別很是大。例如,用下面的命令查看已上傳的鏡像:
curl -X GET http://倉庫IP:倉庫端口/v2/_catalog
應該可以返回:
{"repositories":["nginx"]}
其他的API能夠從官方文檔上查到https://docs.docker.com/registry/spec/api/。