第五章docker鏡像倉庫

Docker Hub

    是Docker公司維護的公共Registry,用戶可以將自己的鏡像保存到Docker Hub免費的repository中,除了 Docker Hub,quay.io是另一個公共 Registry,提供與Docker Hub類似的服務

使用Docker Hub公共倉庫存取鏡像:
    申請hub.docker.com賬號實現容器鏡像上傳下載到鏡像庫
    創建一個test目錄,上傳下載地址dockercbb/test
    登錄共有鏡像存儲倉庫
    默認登錄(登錄後輸入賬號密碼)
    docker login

私有鏡像庫登錄方法(因爲我們是https協議,需要把鏡像倉庫證書導入到本地):
echo "-----BEGIN CERTIFICATE-----
MIIEDzCCAvegAwIBAgIJAPlFtdeNcWKWMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYD
VQQGEwJjbjEQMA4GA1UECAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8G
A1UECgwIaWhhbmdtZWkxDDAKBgNVBAsMA29wdDEgMB4GA1UEAwwXcmVnLmRldm9w
cy5paGFuZ21laS5jb20xJjAkBgkqhkiG9w0BCQEWF2Rvbmd6aGltaW5AaWhhbmdt
ZWkuY29tMCAXDTE3MDUxMTAxNTUyNloYDzIxMTcwNDE3MDE1NTI2WjCBnDELMAkG
A1UEBhMCY24xEDAOBgNVBAgMB2JlaWppbmcxEDAOBgNVBAcMB2JlaWppbmcxETAP
BgNVBAoMCGloYW5nbWVpMQwwCgYDVQQLDANvcHQxIDAeBgNVBAMMF3JlZy5kZXZv
cHMuaWhhbmdtZWkuY29tMSYwJAYJKoZIhvcNAQkBFhdkb25nemhpbWluQGloYW5n
bWVpLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANpWtQx7z3pA
jcd7X4Aq79ANNOX+N6qHt1WXOmWUKmyJjsR4n3150URFdi+UyQg8NMCt2gq7W3vF
8fnQbwaBYftY1eLytVxytuJRFMDJDdtoKOpHZV9iG17EiAlYUFHO+IuDSXqbSIO1
nFktOL+mPTKTZbaUgK2kUUxv8siukTOBYsi1mSARSfmkDM2vv5d9+mgyWgMcKeVj
9duP7mxoJ+/ukocjmNCEqTBel4HjGuSfB/J/p9LTaDwhT5JS7FSgaKbPf6VwReUR
A6RzmEsiIw0CAwEAAaNQME4wHQYDVR0OBBYEFNULv/h6dC32Yucklil8QC3y73Hc
MB8GA1UdIwQYMBaAFNULv/h6dC32Yucklil8QC3y73HcMAwGA1UdEwQFMAMBAf8w
DQYJKoZIhvcNAQELBQADggEBAEUfwEoRAuDxCEuewXbXn6DY8t9pGqkPR+ziUq3x
DfNb9wI+fb2bvztEcjnRKTwVnfasFSbPUOB7Ko5KxIT91uFH4o2kOycSBQlgvAJK
9Y8Se/M24NFIEaHZUXyIIao2VTXN7clNg+adBYWYmyq2D1Fk0MLh71ZXemvsGyCc
YWAdN8mTEAn/jVp87VbLRriUEJxNLsQb+TGu9ADGWBQzJsrRwpH9a3aogj1wwINY
QdpLhfSaOUKPi5+oo30pyLbnNsWZzNRLPSuA8M1K/Kzd9BTGeY4qmvHEk2AmdIB6
4IG8cGiweQpGs5uG/I+SbGV7YbyNxunayZYFXhh2LCFuCA0=
-----END CERTIFICATE-----" >> /etc/pki/tls/certs/ca-bundle.crt
docker login -u username -p passwd https://reg.devops.ihangmei.com

#查看鏡像
docker images
修改鏡像的repository使之與Docker Hub賬號匹配
Docker Hub爲了區分不同用戶的同名鏡像,鏡像的registry中要包含用戶名,完整格式爲: username/xxx:tag
我們通過 docker tag 命令重命名鏡像

#把要上傳的鏡像打好標籤
docker tag centos dockercbb/test:v1
#上傳到鏡像倉庫中
docker push dockercbb/test:v1
#下載到本地
docker pull dockercbb/test:v1
此時登錄hub.docker.com的web頁面也可以看到上傳的鏡像


原理圖:

圖片.png

Docker Hub 雖然非常方便,但還是有些限制
1、需要internet連接,而且下載和上傳速度慢
2、上傳到Docker Hub的鏡像任何人都能夠訪問,雖然可以用私有repository但不是免費的
3、安全原因很多組織不允許將鏡像放到外網

搭建私有Registry鏡像倉庫
Docker已經將Registry開源了,同時在Docker Hub上也有官方的鏡像registry

啓動registry容器
docker run -d -p 5000:500 -v /opt/:/var/lib/registry registry:2
    -d 後臺啓動容器
    -p 將容器的5000端口映射到Host的5000端口,5000是registry服務端口
    -v 將容器/var/lib/registry目錄映射到Host的/opt,用於存放鏡像數據

通過docker tag重命名鏡像,使之與registry匹配
registry-host:port/username/xxx
上傳和下載鏡像和公共鏡像庫一樣

私有registry也支持認證,https安全傳輸等特性,具體可以參考官方文檔 https://docs.docker.com/registry/configuration/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章