具體幫助分為兩個(gè)方面:1)容器注冊(cè)這個(gè)概念本身,以及2)GitLab的集成式容器注冊(cè)服務(wù)。
容器注冊(cè)服務(wù)非常適合各種開(kāi)發(fā)者工作流的分享和自動(dòng)化。例如,將映像推送至容器注冊(cè)服務(wù)之后,團(tuán)隊(duì)中的每個(gè)人(如果是私有服務(wù))或有需要的任何人(如果是公開(kāi)服務(wù))都可以從中下載映像,或?yàn)槟能浖?gòu)建一個(gè)完整版本。此時(shí)并不需要自行下載源代碼并編譯,只要抓取一個(gè)完整映像即可。但實(shí)際上抓取的并不僅僅是包含編譯后代碼的映像,而是包含完整操作系統(tǒng)版本以及其他依賴工具完整環(huán)境的映像,運(yùn)行軟件所需的一切均包含在內(nèi),無(wú)論在筆記本或云實(shí)例中軟件都能無(wú)差異完美運(yùn)行。
為了讓一切保持無(wú)縫,GitLab已將容器注冊(cè)服務(wù)集成于整個(gè)GitLab工作流中。用戶只需要管理一套用戶身份和一個(gè)標(biāo)準(zhǔn)化的項(xiàng)目。在連接到注冊(cè)服務(wù)后即可訪問(wèn)全部有權(quán)訪問(wèn)的映像。對(duì)于企業(yè)本地部署的用戶來(lái)說(shuō),更重要的是完全無(wú)需額外安裝或維護(hù)任何其他軟件。
在Docker與工作流相集成方面有幾個(gè)新興實(shí)踐。其中三大常見(jiàn)領(lǐng)域包括:1)在Docker之外構(gòu)建并測(cè)試一切,隨后為最終結(jié)果創(chuàng)建Docker映像,以及2)構(gòu)建Docker映像,隨后對(duì)其進(jìn)行測(cè)試,還有3)構(gòu)建Docker映像,對(duì)其本身進(jìn)行測(cè)試,然后使用Docker-compose同時(shí)運(yùn)行多個(gè)映像并進(jìn)行集成式測(cè)試,借此了解不同組件的交互方式。最后一種情況非常適合使用微服務(wù)的組織。
您覺(jué)得GitLab容器注冊(cè)服務(wù)在哪些領(lǐng)域能提供最大收益?
Docker的主要優(yōu)勢(shì)之一在于能夠?qū)⑼粋€(gè)映像用于開(kāi)發(fā)、測(cè)試,以及部署。這種做法可有效避免應(yīng)用發(fā)布到生產(chǎn)環(huán)境后突然發(fā)現(xiàn)環(huán)境存在差異,底層操作系統(tǒng)或其他工具版本不兼容等情況造成的麻煩。例如,很多開(kāi)發(fā)者會(huì)在Mac上編寫(xiě)代碼,隨后將其發(fā)布到生產(chǎn)環(huán)境中的Linux系統(tǒng)。大部分情況下這樣做沒(méi)什么問(wèn)題,但偶爾總會(huì)遇到一些麻煩。為確保開(kāi)發(fā)和生產(chǎn)環(huán)境盡可能相似,非常重視站點(diǎn)可靠性的組織甚至提出了“dev-prod對(duì)等”這一概念。
Docker擅長(zhǎng)的另一個(gè)領(lǐng)域是微服務(wù),Dockers在設(shè)計(jì)上可以處理并協(xié)調(diào)多個(gè)服務(wù)。在使用Docker之前,如果開(kāi)發(fā)者需要測(cè)試一個(gè)包含五個(gè)組件的系統(tǒng),可能需要非常繁瑣的操作才能在自己的筆記本上搭建本地環(huán)境。但Docker,尤其是Docker-compose使得整個(gè)過(guò)程變得大為簡(jiǎn)單。
容器注冊(cè)服務(wù)是讓這一切圓滿實(shí)現(xiàn)的中心。
相比使用Docker Hub等其他第三方Docker注冊(cè)服務(wù),集成式容器注冊(cè)服務(wù)有何優(yōu)勢(shì)?
最明顯的優(yōu)勢(shì)是成本和便利性。運(yùn)行容器注冊(cè)服務(wù)無(wú)需額外支付任何費(fèi)用(可創(chuàng)建供個(gè)人或企業(yè)使用,無(wú)限數(shù)量的私有項(xiàng)目),并且該服務(wù)已經(jīng)伴隨GitLab安裝完成。集成工作的重點(diǎn)在于要將GitLab的身份驗(yàn)證和授權(quán)機(jī)制集成在一起,并使其與GitLab項(xiàng)目的組和成員分配情況保持一致,這樣就可以通過(guò)注冊(cè)服務(wù)輕松存儲(chǔ)私有容器倉(cāng)庫(kù)。
舉例來(lái)說(shuō),如果曾用過(guò)Docker Hub,您或者要將自己的項(xiàng)目設(shè)置為公用,或者付費(fèi)將其設(shè)置為私有。如果希望像大部分大型企業(yè)那樣在本地部署,還需要額外付費(fèi)購(gòu)買(mǎi)Docker Trusted Registry。無(wú)論哪種方式,都需要手工管理不同用戶對(duì)映像的協(xié)作訪問(wèn)權(quán)限。
GitLab容器注冊(cè)服務(wù)要求具備GitLab 8.8+,并已免費(fèi)發(fā)布至GitLab.com。