私有注冊表基于docker 1.10.3運(yùn)行良好乘粒,但在docker更新到1.12.0后我無法拉/推圖像膜赃。
當(dāng)我將docker更改為1.10.3時挺邀,它仍然可以正常工作如下:
docker version查看docker版本
一、什么是Docker私有倉庫Registry
??????????? 官方的Docker?hub是一個用于管理公共鏡像的好地方跳座,我們可以在上面找到我們想要的鏡像端铛,也可以把我們自己的鏡像推送上去。但是躺坟,有時候我們的服務(wù)器無法訪問互聯(lián)網(wǎng)沦补,或者你不希望將自己的鏡像放到公網(wǎng)當(dāng)中,那么你就需要Docker Registry咪橙,它可以用來存儲和管理自己的鏡像夕膀。
二、安裝Docker及Registry
2:安裝Registry:
很簡單美侦,只需要運(yùn)行一個Registry容器即可(包括下載鏡像和啟動容器产舞、服務(wù))
docker run -d -p 5000:5000 -v /data/registry:/var/lib/registry --name registry --restart=always registry
這就我們所拉的registry鏡像
以及容器
但是我在docker push/pull時會報錯
unable to ping registry endpoint https://172.18.3.22:5000/v0/
v2 ping attempt failed with error: Get https://172.18.3.22:5000/v2/: http: server gave HTTP response to HTTPS client
這是由于Registry為了安全性考慮,默認(rèn)是需要https證書支持的.
但是我們可以通過一個簡單的辦法解決:
Dockerforwindows
<ip>:5000
contos:
方案一:
#vi /etc/docker/daemon.json
{ "insecure-registries": ["<ip>:5000"] }
#systemctl daemon-reload
#systemctl restart docker
注:<ip>:Registry的機(jī)器ip地址菠剩,在安裝registry的節(jié)點和客戶端需要訪問私有Registry的節(jié)點都需要執(zhí)行此步操作易猫。
以上第一種我是沒有成功,不過小伙伴的可以嘗試一下
方案二:
這是我在國外網(wǎng)站翻譯的(一個英語渣渣看不懂)
OPTIONS='--selinux-enabled=true --insecure-registry=myip:5000'
OPTIONS='--selinux-enabled=true --insecure-registry myip:5000'
以上請將myip設(shè)置為自己服務(wù)器ip
方案三:(沒試過)
好了以上錯誤和環(huán)境都解決和準(zhǔn)備好了開始push到私有倉庫吧
第一步:
首先build我們的鏡像
mvn clean package docker:build
查看鏡像
第二步:
通過 docker tag重命名鏡像,使之與registry匹配
docker tag xe-alipay/xe-alipay <ip>:5000/xe-alipay:latest
第三步:
上傳到registry
docker push <ip>:5000/xe-alipay:latest
第四部:
查看registry中所有鏡像信息
curl http://<ip>:5000/v2/_catalog
返回
{"repositories":["centos6.8","jenkins1.638","nginx","redis3.0","source2.0.3","zkdubbo"]}