最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文教會(huì)你如何高效地搭建Docker私有倉(cāng)庫(kù)

 更新時(shí)間:2022年08月11日 15:03:25   作者:Albert?Edison  
Docker容器應(yīng)用的開(kāi)發(fā)和運(yùn)行離不開(kāi)可靠的鏡像管理,雖然Docker官方也提供了公共的鏡像倉(cāng)庫(kù),但是從安全和效率等方面考慮,部署我們私有環(huán)境內(nèi)的Registry也是非常必要的,這篇文章主要介紹了如何高效地搭建Docker私有倉(cāng)庫(kù)的相關(guān)資料,需要的朋友可以參考下

前言

Docker 倉(cāng)庫(kù)用于保存 Docker 鏡像,分為公有倉(cāng)庫(kù)與私有倉(cāng)庫(kù)。

公有倉(cāng)庫(kù)就是 Docker Hub 一類供所有 Docker 用戶使用的 Docker 倉(cāng)庫(kù)。

私有倉(cāng)庫(kù)是指由個(gè)人或企業(yè)搭建的 Docker 倉(cāng)庫(kù),供其自身使用,是非公開(kāi)的。

本篇文章將對(duì) Docker 私有倉(cāng)庫(kù)及其相關(guān)內(nèi)容進(jìn)行詳解。

1. 私有倉(cāng)庫(kù)

Docker 鏡像通常保存在 Docker HubDocker Hub 是目前最大的 Docker 鏡像公有倉(cāng)庫(kù),由 Docker 官方人員進(jìn)行維護(hù),其中的鏡像可供所有用戶下載使用。

在生產(chǎn)環(huán)境中,通常公司會(huì)構(gòu)建一些符合公司業(yè)務(wù)需求的鏡像,這些鏡像因?yàn)槭巧虡I(yè)機(jī)密而不得上傳至 Docker Hub,只能供公司內(nèi)部人員使用。

此時(shí)就需要在內(nèi)網(wǎng)搭建一個(gè) Docker 私有倉(cāng)庫(kù),來(lái)存儲(chǔ)公司內(nèi)部的鏡像,并確保內(nèi)部人員可以不受網(wǎng)絡(luò)限制,快速地拉取或上傳鏡像。

鏡像為 Docker 容器的運(yùn)行基礎(chǔ),容器是鏡像的具體運(yùn)行實(shí)例,鏡像倉(cāng)庫(kù)為鏡像提供了可靠的存儲(chǔ)空間,鏡像可以從公有或私有倉(cāng)庫(kù)拉取,如圖所示??

2. 搭建私有倉(cāng)庫(kù)

環(huán)境部署

私有鏡像倉(cāng)庫(kù)在企業(yè)中占有較高的使用率,因此私有鏡像倉(cāng)庫(kù)搭建技術(shù)顯得尤為重要。

下面通過(guò)示例講述私有鏡像倉(cāng)庫(kù)的搭建方式與過(guò)程。

本節(jié)需要用到兩臺(tái)服務(wù)器,一個(gè)作為私有鏡像倉(cāng)庫(kù),另一個(gè)作為使用私有鏡像倉(cāng)庫(kù)的 Docker 客戶機(jī)。

此處以 CentOS 系統(tǒng)為例,安裝并啟動(dòng) Docker,服務(wù)器信息如表所示。

自建倉(cāng)庫(kù)

Docker Hub 為用戶提供了完美的倉(cāng)庫(kù)鏡像,本示例將使用 Docker Hub 中的倉(cāng)庫(kù)鏡像運(yùn)行私有倉(cāng)庫(kù)。

首先從 Docker Hub 中拉取倉(cāng)庫(kù)鏡像,示例代碼如下:

以上示例成功拉取了 Docker 倉(cāng)庫(kù)的鏡像。

下面將倉(cāng)庫(kù)鏡像運(yùn)行成為容器,示例代碼如下:

以上示例將倉(cāng)庫(kù)鏡像運(yùn)行成了倉(cāng)庫(kù)容器,并映射了宿主機(jī)的 5000 端口,供 Docker 鏡像的上傳與下載。

其中,--restart=always 表示容器停止時(shí)自動(dòng)重啟,這條參數(shù)常用于生產(chǎn)環(huán)境中。

下面將鏡像上傳至剛剛創(chuàng)建的鏡像倉(cāng)庫(kù)中,示例代碼如下:

以上示例拉取了一個(gè) BusyBox 鏡像,并為其添加了 tag 標(biāo)識(shí),在嘗試將鏡像推送至私有倉(cāng)庫(kù)時(shí),發(fā)生了報(bào)錯(cuò)。

這是因?yàn)?Docker 默認(rèn)支持 HTTPSHyper Text Transfer Protocol Secure,安全超文本傳輸協(xié)議),命令行中使用的是 HTTP(Hyper Text Transfer Protocol,超文本傳輸協(xié)議)。

修改 Docker 的啟動(dòng)參數(shù),使之允許以 HTTP 工作,示例代碼如下:

以上示例修改了 Docker 配置文件中的啟動(dòng)參數(shù),并重啟Docker。

下面接著嘗試將鏡像推送至私有倉(cāng)庫(kù),示例代碼如下:

以上示例成功將鏡像推送到私有倉(cāng)庫(kù)。

如果想在其他宿主機(jī)上使用該倉(cāng)庫(kù),只需要修改配置文件,重啟 Docker 服務(wù)。

下面通過(guò)另外一臺(tái)服務(wù)器拉取私有倉(cāng)庫(kù)中的鏡像,先修改 Docker 配置文件,再重新讀取并重新啟動(dòng) Docker,最后拉取鏡像,示例代碼如下:

以上示例成功從私有倉(cāng)庫(kù)下載了 BusyBox 鏡像。

如此,一個(gè)簡(jiǎn)單的私有倉(cāng)庫(kù)就搭建好了,但安全系數(shù)較低,鏡像保存在容器中,容器被刪除后,私有倉(cāng)庫(kù)以及倉(cāng)庫(kù)中的鏡像也會(huì)一并刪除,數(shù)據(jù)無(wú)法保存。

3. 使用 TLS 證書(shū)

生成證書(shū)

想讓倉(cāng)庫(kù)對(duì)外提供服務(wù),就需要配置用戶認(rèn)可的 TLSTransport Layer Security,傳輸層安全)證書(shū),否則倉(cāng)庫(kù)將無(wú)法正常使用。

目前很多代理商可以提供權(quán)威的證書(shū),用戶可以自行選擇。

下面演示自行生成 TLS 證書(shū)的方式及過(guò)程。

(1)使用 Openssl 工具生成私人證書(shū)文件。(暫不演示)

(2)創(chuàng)建帶有 TSL 認(rèn)證的倉(cāng)庫(kù)容器,示例代碼如下:

上述示例運(yùn)行了一個(gè)被命名為 registry-TLS 的容器,并通過(guò) REGISTRY_HTTP_TLS_CERTIFICATEREGISTRY_HTTP_TLS_KEY 兩個(gè)參數(shù)啟用倉(cāng)庫(kù)的證書(shū)支持。

(3)在每一臺(tái) Docker 客戶端宿主機(jī)上配置域名解析,使宿主機(jī)可以解析域名 “registry.Docker.com”,并在宿主機(jī)中創(chuàng)建名稱與域名名稱相同的目錄,示例代碼如下:

(4)將證書(shū) damain.crt 復(fù)制到要使用倉(cāng)庫(kù)的 Docker 宿主機(jī),并放到 /etc/Docker/certs.d/registry.Docker.com:5000/ 目錄下,示例代碼如下:

(5)Docker-1 是倉(cāng)庫(kù)的宿主機(jī),下面使用 Docker-2 推送鏡像到私有倉(cāng)庫(kù),示例代碼如下:

以上示例成功將 Docker-2 中的鏡像推送至私有倉(cāng)庫(kù),并通過(guò) -k 選項(xiàng)關(guān)閉 curl 對(duì)證書(shū)的驗(yàn)證。

注意,默認(rèn)情況下,證書(shū)只支持基于域名訪問(wèn),要使其支持 IP 地址訪問(wèn),需要修改配置文件 Openssl.cnf

CentOS7 系統(tǒng)中,文件所在位置是 /etc/pki/tls/Openssl.cnf。

在文件中的 [ v3_ca ] 部分添加 subjectAltName 選項(xiàng),示例代碼如下:

保存退出后,重新生成證書(shū)即可使用。

基本身份驗(yàn)證

企業(yè)創(chuàng)建私有鏡像倉(cāng)庫(kù)時(shí),為防止信息泄露,通常會(huì)為倉(cāng)庫(kù)添加訪問(wèn)限制。

實(shí)現(xiàn)訪問(wèn)限制的最簡(jiǎn)單的方法是基本身份驗(yàn)證,下面通過(guò)本機(jī)基本身份驗(yàn)證,為倉(cāng)庫(kù)添加訪問(wèn)限制。

(1)創(chuàng)建用戶密碼文件,示例代碼如下:

以上示例創(chuàng)建了用戶密碼文件 testusertestpassword。

(2)運(yùn)行倉(cāng)庫(kù)容器,并指定 TLS 證書(shū)與身份驗(yàn)證目錄,示例代碼如下:

(3)嘗試推送鏡像,示例代碼如下:

以上示例中,鏡像推送失敗,原因是沒(méi)有基本身份驗(yàn)證憑據(jù)。

(4)通過(guò)用戶名與密碼登錄,示例代碼如下:

(5)登錄之后,再次推送鏡像,示例代碼如下:

以上示例在登錄之后成功推送鏡像到私有倉(cāng)庫(kù)。

4. Nginx 反向代理倉(cāng)庫(kù)

使用 Nginx 代理可以實(shí)現(xiàn)倉(cāng)庫(kù)的認(rèn)證功能。

簡(jiǎn)而言之,就是將 Nginx 服務(wù)器作為私有倉(cāng)庫(kù)的代理使用,如圖所示??

(1)私有倉(cāng)庫(kù)的搭建采用前文中的方式,首先在 Docker-1 中安裝Nginx,并修改其配置文件。

(2)然后通過(guò) OpenSSL 工具生成私鑰和證書(shū),示例代碼如下:

(3)使用 htpasswd 工具生成用戶賬戶,并設(shè)置密碼,示例代碼如下:

(4)啟動(dòng) Nginx 服務(wù),示例代碼如下:

(5)訪問(wèn)測(cè)試

使用瀏覽器訪問(wèn) https://192.168.56.146:443,出現(xiàn)登錄界面,如圖所示。

輸入正確的賬號(hào)密碼即可訪問(wèn)倉(cāng)庫(kù)。

(6)在 Docker-2 登錄倉(cāng)庫(kù),并推送鏡像到倉(cāng)庫(kù),示例代碼如下:

以上示例在宿主機(jī) Docker-2 中進(jìn)行域名修改及證書(shū)復(fù)制之后,將鏡像成功推送至 Docker-1 的鏡像私有倉(cāng)庫(kù)。

5. 可視化私有倉(cāng)庫(kù)

私有倉(cāng)庫(kù)雖然搭建十分簡(jiǎn)便但使用起來(lái)還是不夠方便,用戶不能直觀地看到倉(cāng)庫(kù)中的資源情況。
本節(jié)將部署基礎(chǔ)的 UIUser Interface,用戶界面)工具,使用戶可以在 Web 界面直觀地看到倉(cāng)庫(kù)中的鏡像以及鏡像的版本等信息。

私有倉(cāng)庫(kù)的可視化需要 UI 工具 hyper/Docker-registry-web 來(lái)支持實(shí)現(xiàn),如此可提高倉(cāng)庫(kù)的可讀性。

(1)同樣采用拉取鏡像的方式運(yùn)行 hyper/Docker-registry-web,示例代碼如下:

(2)啟動(dòng) hyper/Docker-registry-web 工具并連接私有倉(cāng)庫(kù),示例代碼如下:

以上示例啟動(dòng)了 hyper/Docker-registry-web 工具并連接了私有倉(cāng)庫(kù),此時(shí)已經(jīng)可以通過(guò)訪問(wèn) IP 地址與端口號(hào)查看私有倉(cāng)庫(kù)的信息。

其中,--link 設(shè)置要連接的倉(cāng)庫(kù)容器,-e 設(shè)置環(huán)境變量。

(3)拉取任意鏡像到私有倉(cāng)庫(kù)中,示例代碼如下:

使用瀏覽器訪問(wèn)私有倉(cāng)庫(kù),查看鏡像信息,如圖所示。

查看鏡像的標(biāo)簽、大小、構(gòu)建歷史等信息,如圖所示??

??

總結(jié)

本文章詳細(xì)介紹了如何搭建 Docker 私有倉(cāng)庫(kù),如何通過(guò)配置證書(shū)為倉(cāng)庫(kù)添加安全級(jí)別與身份驗(yàn)證,如何使用 Nginx 代理倉(cāng)庫(kù)。

相信大家已經(jīng)通過(guò)本文章的學(xué)習(xí)已經(jīng)熟練掌握了鏡像私有倉(cāng)庫(kù)的相關(guān)知識(shí),并能夠搭建出企業(yè)級(jí)的私有倉(cāng)庫(kù)。

到此這篇關(guān)于如何高效地搭建Docker私有倉(cāng)庫(kù)的文章就介紹到這了,更多相關(guān)Docker私有倉(cāng)庫(kù)搭建內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker MQTT安裝使用教程

    Docker MQTT安裝使用教程

    今天小編就為大家分享一篇關(guān)于Docker MQTT安裝使用教程,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-10-10
  • docker-compose使用中遇到的坑及解決

    docker-compose使用中遇到的坑及解決

    這篇文章主要介紹了docker-compose使用中遇到的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Docker部署項(xiàng)目完全使用指南(小結(jié))

    Docker部署項(xiàng)目完全使用指南(小結(jié))

    本文主要介紹了Docker部署項(xiàng)目完全使用指南,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • docker構(gòu)建鏡像需使用的命令小結(jié)

    docker構(gòu)建鏡像需使用的命令小結(jié)

    Docker 構(gòu)建鏡像的命令主要分為兩類:Dockerfile 指令與 docker build 命令,這篇文章主要介紹了docker構(gòu)建鏡像需使用的命令,需要的朋友可以參考下
    2007-01-01
  • Docker能否成為下一個(gè)“Linux”?

    Docker能否成為下一個(gè)“Linux”?

    今天小編就為大家分享一篇關(guān)于Docker能否成為下一個(gè)“Linux”?,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • docker?環(huán)境搭建、docker?與容器常用指令大全(推薦)

    docker?環(huán)境搭建、docker?與容器常用指令大全(推薦)

    這篇文章主要介紹了docker?環(huán)境搭建、docker?與容器常用指令大全,主要包括docker容器操作命令匯總,文中介紹需要注意的是如果想要?jiǎng)h除一個(gè)容器,需要先停止該容器且如果鏡像中有運(yùn)行狀態(tài)的容器,也是無(wú)法刪除容器的,需要的朋友可以參考下
    2022-06-06
  • Docker安裝及基本使用方法詳細(xì)介紹

    Docker安裝及基本使用方法詳細(xì)介紹

    本篇文章主要介紹了Docker安裝及基本使用方法詳細(xì)介紹,對(duì)于初學(xué)者有一定的參考作用,有需要的可以了解一下。
    2016-11-11
  • docker?搭建部署?YAPI?框架的詳細(xì)過(guò)程

    docker?搭建部署?YAPI?框架的詳細(xì)過(guò)程

    Yapi是一個(gè)高效、易用、功能強(qiáng)大的接口文檔管理工具,旨在為開(kāi)發(fā)、產(chǎn)品、測(cè)試人員提供更優(yōu)雅的接口管理服務(wù),可以幫助開(kāi)發(fā)者輕松創(chuàng)建、發(fā)布、維護(hù)?AP,這篇文章主要介紹了docker?搭建部署?YAPI?框架,需要的朋友可以參考下
    2022-08-08
  • 淺談Docker Desktop for Linux和Docker Engine區(qū)別

    淺談Docker Desktop for Linux和Docker Engine

    本文主要介紹了Docker Desktop for Linux和Docker Engine區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • MacBookPro下docker的安裝與使用教程

    MacBookPro下docker的安裝與使用教程

    Windows與Linux下關(guān)于docker的安裝使用方法有很多,今天小編這里給大家分享的是MacOS下docker的安裝與簡(jiǎn)單使用案例,非常簡(jiǎn)單,給有需要的小伙伴參考下
    2017-03-03

最新評(píng)論

十堰市| 奉化市| 白沙| 肥城市| 从化市| 自治县| 奈曼旗| 尚志市| 郑州市| 黄浦区| 大安市| 体育| 卢龙县| 江城| 长宁县| 仙桃市| 东海县| 车致| 遂宁市| 福鼎市| 四子王旗| 忻州市| 千阳县| 福泉市| 凤凰县| 调兵山市| 金昌市| 咸宁市| 屯门区| 恩平市| 宜兴市| 六盘水市| 铜陵市| 东源县| 融水| 汝阳县| 中卫市| 仙桃市| 曲靖市| 和平区| 新泰市|