天天看點

docker pull 私有_基于Docker私有倉庫Registry實戰,值得收藏概述一、關于Registry二、 Registry的部署三、Registry實戰

概述

關于Docker更多的概念将不在這裡介紹了,作為虛拟化市場的一顆冉冉升起的新星,Docker得到了越來越多企業的青睐,越來越多的開發者決定擁入Docker的懷抱。“集裝箱”是Docker設計哲學之所在,它讓一台實體機(或者虛拟機)同時運作多個彼此隔離的應用變得更為輕松簡單,當然這一切還是多虧Linux的相關底層技術,當然,也包括OS X,Windows這兩個作業系統。

今天主要簡單介紹一下如何搭建Docker私有倉庫Registry,僅供參考。

一、關于Registry

官方的Docker hub是一個用于管理公共鏡像的好地方,我們可以在上面找到我們想要的鏡像,也可以把我們自己的鏡像推送上去。但是,有時候,我們的使用場景需要我們擁有一個私有的鏡像倉庫用于管理我們自己的鏡像。這個可以通過開源軟體Registry來達成目的。

Registry在github上有兩份代碼:老代碼庫和新代碼庫。老代碼是采用python編寫的,存在pull和push的性能問題,出到0.9.1版本之後就标志為deprecated,不再繼續開發。從2.0版本開始就到在新代碼庫進行開發,新代碼庫是采用go語言編寫,修改了鏡像id的生成算法、registry上鏡像的儲存結構,大大優化了pull和push鏡像的效率。

官方在Docker hub上提供了registry的鏡像,我們可以直接使用該registry鏡像來建構一個容器,搭建我們自己的私有倉庫服務。

二、 Registry的部署

1、擷取registry鏡像

下載下傳到的版本預設為 docker.io/registry:latest

--安裝dockeryum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo(中央倉庫)yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿裡倉庫)yum install -y docker-ce-18.06.3.ce(先用yum list docker-ce --showduplicates | sort -r檢視最新版本)systemctl start docker &&  systemctl enable dockerdocker version--拉取registry鏡像docker pull registry
           
docker pull 私有_基于Docker私有倉庫Registry實戰,值得收藏概述一、關于Registry二、 Registry的部署三、Registry實戰

2、将registry鏡像運作并生成一個容器

Registry服務預設會将上傳的鏡像儲存在容器的/var/lib/registry,将主機的/opt/registry目錄挂載到該目錄,即可實作将鏡像儲存到主機的/opt/registry目錄了。

docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
           
docker pull 私有_基于Docker私有倉庫Registry實戰,值得收藏概述一、關于Registry二、 Registry的部署三、Registry實戰

3、測試registry容器是否正常運作

registry容器啟動後,打開浏覽器輸入http://ip_add:5000/v2/,看到下面情況說明registry運作正常

docker pull 私有_基于Docker私有倉庫Registry實戰,值得收藏概述一、關于Registry二、 Registry的部署三、Registry實戰

三、Registry實戰

1、修改用戶端docker的配置檔案/etc/docker/daemon.json

預設啟動的registry服務不是安全可信賴的,需修改用戶端docker的配置檔案/etc/docker/daemon.json,添加下面藍色的内容(registry服務位址),其中 "registry-mirrors": ["https://pee6w651.mirror.aliyuncs.com"] 是阿裡雲代理的Registry Hub倉庫的位址,可以加快國内通路Registry Hub倉庫的速度。

{"registry-mirrors": [ "https://pee6w651.mirror.aliyuncs.com"],"insecure-registries": ["192.168.189.35:5000"]}
           

2、重新開機docker服務

systemctl restart docker 
           
docker pull 私有_基于Docker私有倉庫Registry實戰,值得收藏概述一、關于Registry二、 Registry的部署三、Registry實戰

3、測試上傳鏡像到Registry

通過将鏡像push到registry來驗證,注意将主機的registry鏡像命名為符合倉庫要求registry_url:port/ImageName:tag的格式

--下載下傳鏡像docker pull codenvy/jdk8_maven3_tomcat8docker images--通過docker tag指令來實作命名docker tag codenvy/jdk8_maven3_tomcat8:latest 192.168.189.35:5000/codenvy/jdk8_maven3_tomcat8:latestdocker iamges--上傳jdk鏡像到Registry倉庫docker push 192.168.189.35:5000/codenvy/jdk8_maven3_tomcat8:latest
           
docker pull 私有_基于Docker私有倉庫Registry實戰,值得收藏概述一、關于Registry二、 Registry的部署三、Registry實戰
docker pull 私有_基于Docker私有倉庫Registry實戰,值得收藏概述一、關于Registry二、 Registry的部署三、Registry實戰

4、檢查鏡像

push成功之後,檢視本地/opt/registry目錄下已經有了剛推送上來的registry鏡像,也可以在浏覽器中輸入http://ip_add:5000/v2/_catalog檢視

docker pull 私有_基于Docker私有倉庫Registry實戰,值得收藏概述一、關于Registry二、 Registry的部署三、Registry實戰
docker pull 私有_基于Docker私有倉庫Registry實戰,值得收藏概述一、關于Registry二、 Registry的部署三、Registry實戰

5、從Registry私有倉庫拉取鏡像

docker pull  192.168.189.35:5000/codenvy/jdk8_maven3_tomcat8:latest
           
docker pull 私有_基于Docker私有倉庫Registry實戰,值得收藏概述一、關于Registry二、 Registry的部署三、Registry實戰
docker pull 私有_基于Docker私有倉庫Registry實戰,值得收藏概述一、關于Registry二、 Registry的部署三、Registry實戰

後面會分享更多devops和DBA方面内容,感興趣的朋友可以關注下

docker pull 私有_基于Docker私有倉庫Registry實戰,值得收藏概述一、關于Registry二、 Registry的部署三、Registry實戰

繼續閱讀