docker 推送到本地仓库_Docker_学习笔记系列之仓库
docker倉(cāng)庫(kù)分公有和私有之分,本文主要介紹如何搭建私有倉(cāng)庫(kù)
1. 簡(jiǎn)介
Docker倉(cāng)庫(kù),類似于yum倉(cāng)庫(kù),是用來保存鏡像的倉(cāng)庫(kù)。為了方便的管理和使用docker鏡像,可以將鏡像集中保存至Docker倉(cāng)庫(kù)中,將制作好的鏡像push到倉(cāng)庫(kù)集中保存,在需要鏡像時(shí),從倉(cāng)庫(kù)中pull鏡像即可。
Docker 倉(cāng)庫(kù)分為公有云倉(cāng)庫(kù)和私有云倉(cāng)庫(kù)
公有云倉(cāng)庫(kù):由互聯(lián)網(wǎng)公司對(duì)外公開的倉(cāng)庫(kù)
官方
阿里云等第三方倉(cāng)庫(kù)
私有云倉(cāng)庫(kù):組織內(nèi)部搭建的倉(cāng)庫(kù),一般只為組織內(nèi)部使用,常使用下面軟件搭建倉(cāng)庫(kù)
docker registory
docker harbor
2.1 從dockerhub推送/拉取鏡像
1.1 ?注冊(cè)dockerhub創(chuàng)建賬號(hào) :https://hub.docker.com/
# 注意點(diǎn):上傳dockerHub上的鏡像名需滿足:用戶名/倉(cāng)庫(kù)名:標(biāo)簽# 如:在dockerhub上創(chuàng)建了倉(cāng)庫(kù)learndocker倉(cāng)庫(kù),那么你構(gòu)建的鏡像名就必須帶有addmoney2018/learndocker,后面的標(biāo)簽自定義docker push addmoney2018/learndocker:tagnameYou can push a new image to this repository using the CLIdocker tag local-image:tagname new-repo:tagnamedocker push new-repo:tagnameMake sure to change tagname with your desired image repository tag.1.2 在本地通過commit容器保存或者dockerfile構(gòu)建一個(gè)鏡像
1.3 本地登錄dockerHub :docker login,登錄后生成~/.docker/config.json文件保存驗(yàn)證信息
1.4 檢查鏡像名是否符合dockerHub要求的,如不行,修正,再上傳鏡像
docker tag old-image:tagename addmoney2018/learndocker:20201212docker push addmoney2018/learndocker:202012121.5 ?從dockerHub上拉取鏡像
docker logindocker pull addmoney2018/learndocker2. 2 創(chuàng)建組織和團(tuán)隊(duì)賦權(quán)共同管理倉(cāng)庫(kù)
組織類似于名稱空間,每個(gè)組織的名稱全網(wǎng)站唯一,一個(gè)組織可以有多個(gè)用戶帳戶使用,并且可以指定不同用戶對(duì)組織內(nèi)的倉(cāng)庫(kù)不同的權(quán)限
三種不同權(quán)限
Read-only:Pull and view repository details and builds
Read &Write:Pull, push, and view a repository; view, cancel, retry or trigger builds
Admin:Pull, push, view, edit, and delete a repository; edit build settings; update the repository description
2.2.1 創(chuàng)建組織
2.2.2 組織下創(chuàng)建團(tuán)隊(duì)
2.2.3 為團(tuán)隊(duì)下的倉(cāng)庫(kù)配置權(quán)限
2.2.4 ?本地將鏡像上傳到指定的組織
docker login# 先將鏡像名改成:docker.io/組織名/鏡像名:標(biāo)簽docker tag local_images docker.io/beijingdream:v1# 推送docker push docker.io/beijingdream:v1# 其他機(jī)器拉取docker pull docker.io/beijingdream:v1注:還有一種是用阿里云的倉(cāng)庫(kù),大體邏輯一致,請(qǐng)自行百度學(xué)習(xí)
3. 搭建自己的私有倉(cāng)庫(kù)
私有云單機(jī)倉(cāng)庫(kù)Docker Registry【官方提供】
Docker Registry作為Docker的核心組件之一負(fù)責(zé)鏡像內(nèi)容的存儲(chǔ)與分發(fā),客戶端的docker pull以及push命令都將直接與registry進(jìn)行交互,go開發(fā)后改項(xiàng)目名為Distribution
官方文檔:https://docs.docker.com/registry/
源碼GitHub地址:https://github.com/docker/distribution
官方部署文檔:https://github.com/docker/docker.github.io/blob/master/registry/deploying.md
參考文檔:https://yeasy.gitbook.io/docker_practice/repository/registry
3.1 從dockerHub上拉取docker registry鏡像
docker pull registry:latest3.2 啟動(dòng)容器運(yùn)行倉(cāng)庫(kù)
docker run -d \-p 5000:5000 \--name my_registry--restart=always \-v /opt/data/registry_dir:/var/lib/registry \ ?registry:latest# 私有倉(cāng)庫(kù)容器里默認(rèn)創(chuàng)建在/var/lib/registry里,通過映射就將所有的鏡像文件保存到宿主機(jī)對(duì)應(yīng)的目錄里進(jìn)行持久化防止因容器掛了數(shù)據(jù)丟失3.3 在使用端修改docker配置文件,配置倉(cāng)庫(kù)地址
vim /etc/docker/daemon.json{"data-root" : "/app/lib/docker" , "registry-mirrors": ["192.168.0.100:5000"], ?# 加速的地址"insecure-registries" : ["192.168.0.100:5000"]}# 保存配置,重啟dockersystemctl restart docker# 重新啟動(dòng)registry生成容器3.4 將本地鏡像推送到私有倉(cāng)庫(kù)
docker tag centos 192.168.0.100:5000/centos:v1docker push 192.168.0.100:5000/centos:v13.5 ?查看倉(cāng)庫(kù)情況
官網(wǎng)文檔:https://docs.docker.com/registry/spec/api/#listing-repositories
# 只有api,沒有可視化界面http://192.168.0.100:5000/v2/_catalog分布式私有倉(cāng)庫(kù)harbor
Harbor是一個(gè)用于存儲(chǔ)和分發(fā)Docker鏡像的企業(yè)級(jí)Registry服務(wù)器,由vmware開源,其通過添加一些企業(yè)必需的功能特性,例如安全、標(biāo)識(shí)和管理等,擴(kuò)展了開源Docker Distribution。Harbor支持安裝在多個(gè)Registry節(jié)點(diǎn)的鏡像資源復(fù)制,鏡像全部保存在私有Registry中。
vmware官方開源服務(wù):https://vmware.github.io/
harbor 官方github 地址:https://github.com/vmware/harbor
harbor 官方網(wǎng)址:https://goharbor.io/
harbor官方文檔:https://goharbor.io/docs/
Harbor功能官方介紹
-基于角色的訪問控制:用戶與Docker鏡像倉(cāng)庫(kù)通過“項(xiàng)目”進(jìn)行組織管理,一個(gè)用戶可以對(duì)多個(gè)鏡像倉(cāng)庫(kù)在同一命名空間(project)里有不同的權(quán)限
-鏡像復(fù)制:鏡像可在多個(gè)Registry實(shí)例中復(fù)制(同步)。尤其適合于負(fù)載均衡,高可用,混合云和多云的場(chǎng)景
-圖形化用戶界面:用戶可以通過瀏覽器來瀏覽,檢索當(dāng)前Docker鏡像倉(cāng)庫(kù),管理項(xiàng)目和命名空間
-AD/LDAP 支:Harbor可以集成企業(yè)內(nèi)部已有的AD/LDAP,用于鑒權(quán)認(rèn)證管理
-審計(jì)管理:所有針對(duì)鏡像倉(cāng)庫(kù)的操作都可以被記錄追溯,用于審計(jì)管理
-國(guó)際化:已擁有英文、中文、德文、日文和俄文的本地化版本。更多的語(yǔ)言將會(huì)添加進(jìn)來
-RESTful API:提供給管理員對(duì)于Harbor更多的操控, 使得與其它管理軟件集成變得更容易
-部署簡(jiǎn)單:提供在線和離線兩種安裝工具, 也可以安裝到vSphere平臺(tái)(OVA方式)虛擬設(shè)備
具體的部署,可自行百度!
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的docker 推送到本地仓库_Docker_学习笔记系列之仓库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 联想电脑怎么用光盘装系统 如何使用光盘为
- 下一篇: 优盘怎么去除被写保护 优盘如何消除写保护