7.docker私有registry

1、Docker Registry分類

Registry用於保存docker鏡像,包括鏡像的層次結構和元數據。都是基於https或者http工做的。node

用戶可自建Registry,也可以使用官方的Docker Hub。nginx

分類:git

  • Sponsor Registry:第三方的registry,供客戶和Docker社區使用;
  • Mirror Registry:第三方的registry,只讓客戶使用;
  • Vendor Registry:由發佈docker鏡像的供應商提供的registry;
  • Private Registry:經過設有防火牆和額外的安全層的私有實體提供的registry。

2、製做私有registry

運行方式:安裝RPM包 -- docker-distribution;registry也被運行爲容器,docker官方有提供鏡像;使用harbor來構建本地私有registry。github

一、經過RPM包安裝 docker registry

[root@oracle ~]# yum install docker-registry -y
[root@oracle ~]# rpm -ql docker-distribution
[root@oracle ~]# cat /etc/docker-distribution/registry/config.yml #配置文件,能夠更改監聽,鏡像存儲位置等
[root@oracle ~]# systemctl start docker-distribution
[root@oracle ~]# docker tag mynginx:v0.3-2 192.168.42.133:5000/mynginx:v0.3-2
[root@oracle ~]# docker push 192.168.42.133:5000/mynginx:v0.3-2 # 默認基於https工做,因此會報錯
[root@oracle ~]# vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"],
  "insecure-registries": ["192.168.42.133:5000"],
  "bip": "10.10.1.2/16"
}
[root@oracle ~]# docker push 192.168.42.133:5000/mynginx:v0.3-2  #推送成功,默認放在/var/lib/registry/下

二、運行爲容器

與常規運行容器相同,官方已提供鏡像(docker search registry)但因爲容器中數據隨容器的生命週期結束而丟失,因此咱們須要爲其提供專門的存儲卷。web

 三、使用Harbor來搭建

(1)介紹

Harbor是一個企業級的倉庫應用程序,是VMWare在docker distribution的基礎上作的二次開發項目,提供了不少額外程序和Web界面。docker

Harbor官方爲了簡化安裝,把harbor作成了在容器中運行的應用。因爲harbor的運行依賴於MySQL、Redis等不少存儲系統,因此須要多個容器協同工做。所以須要使用docker的單機容器編排工具docker compose(yum info docker-compose,docker-compose可作的操做不少,有興趣官網瞭解)。數據庫

(2)安裝Harbor

 github:https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md  #去GitHub上下載部署文件json

[root@oracle ~]# yum install docker-compose -y
[root@oracle soft]# tar xf harbor-offline-installer-v1.9.0.tgz 
[root@oracle soft]# mv harbor /usr/local/
[root@oracle harbor]# vim /usr/local/harbor/harbor.yml  #按需修改配置文件,包括主機名,管理員初始密碼,數據庫初始密碼等,而後安裝
[root@oracle harbor]# ./install.sh 

 

 

 此時,瀏覽器訪問http://192.168.42.133/harbor/sign-in?redirect_url=%2Fharbor%2Fprojects,使用admin/Harbor12345登陸。vim

  web頁面新建一個test項目,而後去推送鏡像到此倉庫,而後web頁面就能夠查看剛剛推送的鏡像了。瀏覽器

[root@node1 ~]# docker tag nginx:1.14-alpine node1.cmxu.com/test/nginx:apline
[root@node1 ~]# docker login node1.cmxu.com 
[root@node1 ~]# docker push node1.cmxu.com/test/nginx:apline
# 重啓docker進程後,也須要重啓Harbor
[root@node1 ~]# docker-compose --help
[root@node1 ~]# docker-compose down
[root@node1 ~]# docker-compose up -d

相關文章
相關標籤/搜索