Docker搭建私有倉庫之registry

Registry

* 有時候使用 Docker Hub 這樣的公共倉庫可能不方便,用戶能夠建立一個本地倉庫供私人使用。
* docker-registry是官方提供的工具,能夠用於構建私有的鏡像倉庫。

注:docker

* 隨着docker使用的鏡像愈來愈多,就須要有一個保存鏡像的地方,這就是倉庫。
* 目前經常使用的兩種倉庫:
 公共倉庫和私有倉庫。最方便的就是使用公共倉庫上傳和下載,
 下載公共倉庫的鏡像是不須要註冊的,可是上傳時,是須要註冊的。

* 私有倉庫最經常使用的就是registry、Harbor兩種,那接下來詳細介紹如何建立私有倉庫。
* 今天說的Registry倉庫,是經過一個容器給咱們提供的服務,是比較簡
   易的私有倉庫,之後在企業中還會有功能更加完善的Harbor倉庫。

1、搭建registry私有倉庫

1)案例描述vim

兩臺docker服務器,dockerA建立registry私有倉庫,dockerB用於測試!
dockerA:centos

[root@dockerA ~]# docker pull registry:2              //下載registry:2的鏡像
[root@dockerA ~]# docker run -itd --name registry --restart=always  -p 5000:5000 -v /registry:/var/lib/registry registry:2
//建立一個registry容器來運行registry服務;
//-p:端口映射(前面是宿主機端口:後面是容器暴露的端口);
//-v:掛載目錄(前面是宿主機的目錄:後面的是容器的目錄)自動建立宿主機的目錄;
//--restart=always:隨docker服務的啓動而啓動!

Docker搭建私有倉庫之registry

[root@dockerA ~]# docker tag  centos:7 192.168.45.129:5000/centos:7  
//更改鏡像名稱
注:私有倉庫鏡像的命名規則:192.168.45.129:5000/XXX(宿主機的IP:5000端口/鏡像名稱)

Docker搭建私有倉庫之registry

[root@dockerA ~]# vim /usr/lib/systemd/system/docker.service   //修改docker主配置文件
ExecStart=/usr/bin/dockerd    --insecure-registry 192.168.45.129:5000  
//修改本來的配置文件添加不安全的倉庫(--insecure-registry),地址是宿主機的IP地址與5000端口
[root@dockerA ~]# systemctl daemon-reload 
[root@dockerA ~]# systemctl restart docker             //從新啓動docker服務
[root@dockerA ~]# docker push  192.168.45.129:5000/centos:7
//將重命名後的鏡像上傳到registry私有倉庫
[root@dockerA ~]# curl 192.168.45.129:5000/v2/_catalog             //查看私有倉庫中的鏡像
{"repositories":["centos"]}
[root@dockerA ~]# curl 192.168.45.129:5000/v2/centos/tags/list         //查看鏡像的詳細信息
{"name":"centos","tags":["7"]}

dockerB:安全

[root@dockerB ~]# vim /usr/lib/systemd/system/docker.service 
//修改docker的主配置文件
 ExecStart=/usr/bin/dockerd --insecure-registry 192.168.45.129:5000
//添加內容與registry一致,指定registry私有倉庫服務器的IP地址及端口
[root@dockerB ~]# systemctl daemon-reload 
[root@dockerB ~]# systemctl restart docker            //從新啓動docker服務
[root@dockerB ~]# curl 192.168.45.129:5000/v2/_catalog         //查看私有倉庫中的鏡像
{"repositories":["centos"]}
[root@dockerB ~]# curl 192.168.45.129:5000/v2/centos/tags/list     //查看私有倉庫中的鏡像
{"name":"centos","tags":["7"]}
[root@dockerB ~]# docker pull 192.168.45.129:5000/centos:7

Docker搭建私有倉庫之registry

相關文章
相關標籤/搜索