docker入門之私有倉庫製作

docker入門之私有倉庫製作

一、Registry(私有倉庫)1 私有倉庫的作用2 私有倉庫的分類二、Docker官方私有倉庫製作三、vmware Harbor倉庫安裝和使用1 Harbor介紹2 Harbor功能3 安裝和部署Harbor4 使用Harbor

一、Registry(私有倉庫)

1 私有倉庫的作用

Registry 用於保存docker鏡像,包括鏡像的層次結構和元數據。

2 私有倉庫的分類

1、 sponsor Registry:第三方的Registry,供客戶和Docker社區使用
2、 Mirror Registry:第三方的Registry,只讓客戶使用
3、 Vendor Registry:由發佈Docker鏡像的供應商提供的Registry
4、 Private Registry:通過設有防火牆和額外安全層的私有實體提供的Registry

在默認情況下,docker registry只支持https協議。

二、Docker官方私有倉庫製作

1、倉庫服務器安裝registry

yum install docker-registry

2、倉庫服務器查看配置文件

/etc/docker-distrbution/registry/config.yml

默認端口爲:5000
3、倉庫服務器開啓docker-instribution服務

systemctl start docker-instribution

4、客戶端修改配置文件,添加參數,以支持非https上傳鏡像

vim /etc/docker/daemon.json
"insecure-registries":["node02.arppinging.com:5000"]

5、客戶端上傳鏡像
5.1 客戶端對鏡像打上合理的tag,其中頂級目錄應可用。(比如我的服務器域名爲 node2.arppinging.com ),那麼我的tag應該是 node2.arppinging.com:5000/xxx:xxx

docker tag myweb:v0.3-10 node02.arppinging.com:5000/myweb:v0.3-11

5.2 客戶端上傳鏡像

docker push node02.arppinging.com:5000/myweb:v0.3-11

上傳的鏡像會被保存在倉庫服務器的 /var/lib/registry/docker/registry/ 目錄下

6、下載鏡像

docker pull node02.arppinging:5000/myweb:v0.3-11

三、vmware Harbor倉庫安裝和使用

1 Harbor介紹

Harbor是一個開源的私有倉庫項目,支持多用戶管理、訪問控制、目錄監控、複製(冗餘備份)等。

2 Harbor功能

1、支持多用戶
2、支持安全和風險掃描
3、審計日誌
4、標識、基於角色的訪問控制
5、支持鏡像之間的複製
6、支持擴展的API和圖形用戶界面
7、支持英文和中文

3 安裝和部署Harbor

1、下載Harbor

wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.1.tgz

2、解壓

[root@node2 harbor]tar xf harbor-offline-installer-v1.7.1.tgz

3、將解壓後的文件複製到 /usr/local/ 目錄下

[root@node2 tmp]# cp -arf harbor/ /usr/local/

4、修改配置文件

修改hostname爲域名 node2.arppinging.com
       可以修改admin密碼和db_passwd密碼,自動創建數據庫容器時,密碼也會相應改變。

5、安裝docker-compose

[root@node2 harbor]# yum install -y epel-release
[root@node2 harbor]# yum install docker-compose -y
驗證:
[root@node2 ~]# docker-compose -v
docker-compose version 1.18.0, build 8dd22a9
[root@node2 ~]

6、在Harbor目錄下執行安裝腳本

./install.sh

4 使用Harbor

1、登錄harbor
http://ip,默認用戶名和密碼爲admin/Harbor12345

2、新建普通用戶

3、使用普通用戶登陸後,新建一個倉庫


4、倉庫管理

5、客戶端上傳鏡像
5.1 客戶端修改配置文件

[root@node1 ~]# cat /etc/docker/daemon.json 
{
"registry-mirrors":["https://registry.docker-cn.com"],
"insecure-registries":["node2.arppinging.com"]

}
[root@node1 ~]

5.2 重啓客戶端服務

[root@node1 ~]# systemctl restart docker

5.3 客戶端登錄倉庫

[root@node1 ~]# docker login node2.arppinging.com
Username: arppinging    

Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

5.4 客戶端對鏡像打tag

[root@node1 ~]# docker tag myweb:v0.3-10 node2.arppinging.com/devel/myweb:v0.3-10
[root@node1 ~]# docker tag myweb:v0.3-8 node2.arppinging.com/devel/myweb:v0.3-8

5.5 客戶端上傳鏡像

root@node1 ~]# docker push node2.arppinging.com/devel/myweb
        The push refers to repository [node2.arppinging.com/devel/myweb]
        e8f1b15bb8ac: Pushed 
        0f67d3e10c03: Pushed 
        59b059d445c1: Pushed 
        0246bb21855f: Pushed 
        42acf078bf60: Pushed 
        7bff100f35cb: Pushed 
        v0.3-10: digest: sha256:c984d65975ced35ab270c734d726679efcdd0178c20417c91302899b021aa6ca size: 1568
        9193a29e460b: Pushed 
        f785ecaa8521: Pushed 
        59b059d445c1: Layer already exists 
        0246bb21855f: Layer already exists 
        42acf078bf60: Layer already exists 
        7bff100f35cb: Layer already exists 
        v0.3-8: digest: sha256:7f2bb798d7b6b6b5c7ddc4d9f70c15553cdfba286be7116c89e9b589eb8fb04d size: 1568
        [root@node1 ~]

5.6 web端查看倉庫內容


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章