您好,登錄后才能下訂單哦!
這篇文章主要介紹如何搭建docker registry私服,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
目前為止,docker官方的registry鏡像分為兩個版本,v2和v2以前的版本,我管它叫v1,v1使用python編寫的,之后的v2用的go語言,而且它們的API也不一樣,本文將分別搭建基于SSL和登錄認證的以上兩個版本的docker私服。
registry(v2)
搭建環境:172.16.71.52 (contos7,docker1.8)
首先下載鏡像
docker pull resigtry:2
創建證書
mkdir -p certs && openssl req \ -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key \ -x509 -days 365 -out certs/domain.crt
復制domain.crt到指定目錄,172.16.71.52.xip.io為私有倉庫所在服務器的域名,5000為registry的端口號
cp /certs/domain.crt /etc/docker/certs.d/172.16.71.52.xip.io:5000/ca.crt
建立登錄認證
mkdir auth docker run --entrypoint htpasswd registry:2 -Bbn 你的用戶名 你的密碼 > auth/htpasswd
重啟docker
systemctl restart docker
run起來
docker run -d -p 5000:5000 --restart=always --name registry \ -v `pwd`/auth:/auth \ -e "REGISTRY_AUTH=htpasswd" \ -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \ -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \ -v `pwd`/certs:/certs \ -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \ -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \ registry:2
先登錄,再使用
docker login 172.16.71.52.xip.io:5000 docker tag redis 172.16.71.52.xip.io:5000/redis docker push 172.16.71.52.xip.io:5000/redis
檢查下,image是否進入了我們搭建的私有倉庫
# 找到外部掛載的目錄 docker inspect --format {{'json .Mounts'}} registry # push進來的image都安靜的躺在這里 cd /tmp/data/docker/registry/v2/repositories
以下是注意事項:
1.創建認證證書時common name應該用registry所在機器的域名,本人用IP測試沒有成功。
2.docker run之前確保5000端口沒有被占用,啟動成功以后用docker logs看下有沒有報錯
3.push和pull之前要docker login一下
4.想要通過安全認證記得把生成的 domain.crt 復制到/etc/docker/certs.d/172.16.71.52.xip.io:5000/ca.crt,其中172.16.71.52.xip.io為私服的域名,5000為registry的對外端口
5.v2的api變了,訪問v1/search會報錯404 not found,可以通過/v2/_catalog查看私有倉庫的目錄,v2的aip參見這里
參考
https://docs.docker.com/registry/deploying/
https://docs.docker.com/engine/reference/commandline/inspect/
https://docs.docker.com/registry/spec/api/
registry(V1)
V1版本的registry搭建起來比較費勁(也有可能我沒有找到優雅的方法),在網上找了一篇用nginx做SSL和登錄認證的博文,感謝博主,可移步這里查看(親測可用)
搭建docker內網私服(docker-registry with nginx&ssl on centos)
因為版本原因(docker1.8),在ssl認證上還需要把生成的根證書copy到docker指定目錄(如搭建V2時描述的)
cp /etc/pki/CA/cacert.pem /etc/docker/certs.d/172.16.71.43.xip.io:5000/ca.crt
注意在其他主機訪問私服時也要做以上操作。
以上是“如何搭建docker registry私服”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。