成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

docker搭建私有倉(cāng)庫(kù)、自簽發(fā)證書(shū)、登錄認(rèn)證

SolomonXie / 2686人閱讀

摘要:官方文檔對(duì)如何搭建私有倉(cāng)庫(kù)說(shuō)的已經(jīng)很詳細(xì)了,我在這里主要介紹一下使用自簽發(fā)證書(shū)如何搭建私有倉(cāng)庫(kù)并認(rèn)證成功。生成自簽發(fā)證書(shū)。登錄成功后再次執(zhí)行操作,會(huì)出現(xiàn)的報(bào)錯(cuò)。這是因?yàn)檎J(rèn)為傳輸過(guò)來(lái)的證書(shū)的簽署方是一個(gè)未知的,因此驗(yàn)證失敗。

docker官方文檔對(duì)如何搭建私有倉(cāng)庫(kù)說(shuō)的已經(jīng)很詳細(xì)了,我在這里主要介紹一下使用自簽發(fā)證書(shū)如何搭建私有倉(cāng)庫(kù)并認(rèn)證成功。

假設(shè)registry的域名為:registry.domain.com。

生成自簽發(fā)證書(shū)。
> mkdir -p certs
> openssl req -newkey rsa:2048 -nodes -sha256 -keyout certs/domain.key -x509 -days 365 -out certs/domain.crt

執(zhí)行以上命令,生成證書(shū),Common Name那里要輸入我們r(jià)egistry的域名,生成的證書(shū)只對(duì)該域名有效。其他的可以任意填。生成后可以在certs目錄下查看到證書(shū)。

生成鑒權(quán)密碼文件

注意使用時(shí)username替換為你自己的用戶(hù)名,password替換為你自己的密碼。

$ mkdir auth
$ docker run --entrypoint htpasswd registry:2 -Bbn username password  > auth/htpasswd
$ ls auth
啟動(dòng)Registry
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`/data:/var/lib/registry 
   -v `pwd`/certs:/certs 
   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt 
   -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key 
   registry:2
199ad0b3591fb9613b21b1c96f017267f3c39661a7025d30df636c6805e7ab50

如果沒(méi)有registry鏡像會(huì)自動(dòng)下載然后啟動(dòng),可以使用阿里云提供的加速器。
現(xiàn)在完成了registry服務(wù)器的搭建,可以嘗試pull image到registry:

$ docker pull busybox  // 從官方拉去鏡像作為我們的測(cè)試鏡像
$ docker tag busybox:latest registry.domain.com:5000/busybox:latest // 為busybox打tag,tag的前綴一定要為我們r(jià)egistry服務(wù)器的域名。
$ docker push registry.domain.com:5000/busybox:latest  // 將鏡像推送到我們的registry服務(wù)器

如果直接這樣去push,會(huì)失敗,并且出現(xiàn) no basic auth credentials的錯(cuò)誤,這是因?yàn)槲覀儧](méi)有進(jìn)行登錄認(rèn)證。

$ docker login registry.domain.com:5000
$ Username: username
$ Password: password
WARNING: login credentials saved in ~/.docker/config.json
Login Succeeded

登錄成功后再次執(zhí)行push操作,會(huì)出現(xiàn)x509: certificate signed by unknown authority的報(bào)錯(cuò)。這是因?yàn)閐ocker client認(rèn)為server傳輸過(guò)來(lái)的證書(shū)的簽署方是一個(gè)unknown authority(未知的CA),因此驗(yàn)證失敗。我們需要讓docker client安裝我們的CA證書(shū):

$ sudo mkdir -p /etc/docker/certs.d/registry.domain.com:5000
$ sudo cp certs/domain.crt /etc/docker/certs.d/registry.domain.com:5000/ca.crt
$ sudo service docker restart //安裝證書(shū)后,重啟Docker Daemon

再次執(zhí)行push操作,成功推送:

$ docker push registry.domain.com:5000/busybox:latest
The push refers to a repository [registry.domain.com:5000/busybox]
0271b8eebde3: Pushed
latest: digest: sha256:3571ca1b0e90e159de4fc07b3bf94ef189a0645314704f629204adb7035ecf45 size: 527

這里需要注意:如果使用自簽署的證書(shū),那么所有要與Registry交互的Docker主機(jī)都需要安裝registry.domain.com的ca.crt(domain.crt)。但如果你使用知名CA,這一步也就可以忽略。如果是MacOS版的docker也是一樣的操作,盡管它連/etc/docker都不存在,一樣去創(chuàng)建目錄就好了。只是macOS的用戶(hù)想要認(rèn)證生效需要執(zhí)行額外的命令:

$ sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /etc/docker/certs.d/registry.domain.com:5000/ca.crt

此時(shí)在mac上執(zhí)行docker login才可成功。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/27129.html

相關(guān)文章

  • Docker 創(chuàng)建私有倉(cāng)庫(kù)

    摘要:清除所有處于終止?fàn)顟B(tài)的容器訪問(wèn)倉(cāng)庫(kù)倉(cāng)庫(kù)是集中存放鏡像的地方。倉(cāng)庫(kù)可以看成是一個(gè)具體的項(xiàng)目或目錄。是注冊(cè)服務(wù)器地址,是倉(cāng)庫(kù)名。生成認(rèn)證文件編輯修改編輯啟動(dòng)測(cè)試私有倉(cāng)庫(kù)功能登錄到私有倉(cāng)庫(kù)嘗試推送拉取鏡像端口若被占用請(qǐng)嘗試用代理 docker save load 與 docker export import 利用ssh pv Linux管道 實(shí)現(xiàn)鏡像遷移(帶進(jìn)度條) docker save ...

    Kylin_Mountain 評(píng)論0 收藏0
  • Docker Registry Server 搭建,配置免費(fèi)HTTPS證書(shū),及擁有權(quán)限認(rèn)證、TLS

    摘要:上一篇文章搭建了一個(gè)具有基礎(chǔ)功能的私有倉(cāng)庫(kù),這次來(lái)搭建一個(gè)擁有權(quán)限認(rèn)證的私有倉(cāng)庫(kù)。移動(dòng)證書(shū)到目錄。身份驗(yàn)證為用戶(hù)創(chuàng)建一個(gè)帶有一個(gè)條目的密碼文件,密碼為創(chuàng)建倉(cāng)庫(kù)啟動(dòng)注冊(cè)表,指示它使用證書(shū)。注冊(cè)表在端口默認(rèn)的端口上運(yùn)行。 上一篇文章搭建了一個(gè)具有基礎(chǔ)功能的私有倉(cāng)庫(kù),這次來(lái)搭建一個(gè)擁有權(quán)限認(rèn)證、TLS 的私有倉(cāng)庫(kù)。 環(huán)境準(zhǔn)備 系統(tǒng):Ubuntu 17.04 x64 IP:198.13.48...

    liuchengxu 評(píng)論0 收藏0
  • VMware Harbor:基于 Docker Distribution 的企業(yè)級(jí) Registry

    摘要:架構(gòu)介紹主要組件在架構(gòu)上主要由五個(gè)組件構(gòu)成的等服務(wù),通過(guò)一個(gè)前置的反向代理統(tǒng)一接收瀏覽器客戶(hù)端的請(qǐng)求,并將請(qǐng)求轉(zhuǎn)發(fā)給后端不同的服務(wù)。目前不支持功能已提交。 前言 對(duì)于 Harbor 這樣一個(gè)優(yōu)秀的 Docker Registry 管理開(kāi)源項(xiàng)目,以下內(nèi)容基本上來(lái)自前人已有的研究,我只是將其在實(shí)踐中進(jìn)行了測(cè)試,并整理匯集了相關(guān)資料供大家參考,同時(shí)針對(duì) Harbor 與 Rancher產(chǎn)品的...

    simon_chen 評(píng)論0 收藏0
  • 可能是最詳細(xì)的部署:Docker Registry企業(yè)級(jí)私有鏡像倉(cāng)庫(kù)Harbor管理WEB UI

    摘要:私有倉(cāng)庫(kù)是,并在中運(yùn)行。不要使用或?yàn)橹鳈C(jī)名注冊(cè)表服務(wù)需要由外部客戶(hù)端訪問(wèn)或,默認(rèn)為用于訪問(wèn)和令牌通知服務(wù)的協(xié)議。打開(kāi)或關(guān)閉,默認(rèn)打開(kāi)打開(kāi)此屬性時(shí),準(zhǔn)備腳本創(chuàng)建私鑰和根證書(shū),用于生成驗(yàn)證注冊(cè)表令牌。 上一篇文章搭建了一個(gè)具有基礎(chǔ)功能,權(quán)限認(rèn)證、TLS 的私有倉(cāng)庫(kù),但是Docker Registry 作為鏡像倉(cāng)庫(kù),連管理界面都沒(méi)有,甚至連一些運(yùn)維必備的功能都是缺失的,還有什么 Docker...

    沈儉 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<