1. 程式人生 > >Centos 7構建docker私有鏡像倉庫

Centos 7構建docker私有鏡像倉庫

rest RoCE 8.0 實際應用 ble gis 上傳 修改 技術分享

容器鏡像的管理主要圍繞鏡像倉庫(Registry)來進行。在實際應用中,無論開發人員或CI系統發布鏡像,還是測試人員或運維人員下載鏡像,都要通過鏡像倉庫來完成。鏡像倉庫分為公有倉庫和私有倉庫兩種,例如Docker Hub就屬於公有倉庫,公有倉庫的優點是可以直接使用,無須自己維護。但考慮到訪問效率和鏡像安全等方面的原因,企業可構建自己內部的私有倉庫,供內部員工上傳、下載鏡像使用。
系統環境:

服務器 操作系統 IP地址 已安裝軟件
docker倉庫主機 Centos 7.5 64位 192.168.2.225 docker-ce-18.06.1.ce
docker主機 Centos 7.5 64位 192.168.2.226 docker-ce-18.06.1.ce

一、構建私有倉庫

1、下載registry鏡像
docker pull registry
技術分享圖片
2、創建容器並運行
docker run -itd -p 192.168.2.225:5000:5000 -v /data/docker/registry:/var/lib/registry --restart=always --name registry registry:latest
技術分享圖片
參數說明:
-itd:開啟交互模式,分配一個偽終端,以後臺方式運行
-p:把容器的5000端口映射到宿主機指定IP的5000端口上
-v:把容器的/var/lib/registry目錄映射到宿主機的/data/docker/registry目錄,/var/lib/registry是容器中存放鏡像文件的目錄,來實現數據的持久化

--restart=always:重啟策略,容器異常退出會自動重啟容器
--name:指定容器的名稱為registry
3、查看倉庫中的鏡像
curl http://192.168.2.225:5000/v2/_catalog
技術分享圖片
因為才剛運行,還未上傳任何鏡像,所以是空的

二、測試(另一臺docker主機上操作)

1、將之前創建好的鏡像打個標簽
註:centos/httpd:test是我上一篇博文裏制作的鏡像,http://blog.51cto.com/andyxu/2174652
docker tag centos/httpd:test 192.168.2.225:5000/httpd-test:v1
技術分享圖片
參數說明:
tag:標記本地鏡像,將其歸於某一個倉庫

centos/httpd:test是源鏡像和標記信息
192.168.2.225:5000/httpd-test:v1是目標鏡像,包含私有倉庫的IP和端口
2、修改配置文件,添加私有倉庫地址
vim /etc/docker/daemon.json

{
  "registry-mirrors": ["https://registry.docker-cn.com"], "graph": "/data/docker",
  "insecure-registries": ["192.168.2.225:5000"]
}

3、重啟docker服務
systemctl restart docker
4、將鏡像上傳到私有倉庫
docker push 192.168.2.225:5000/httpd-test:v1
技術分享圖片
5、查看私有倉庫中的鏡像
查看所有鏡像
curl http://192.168.2.225:5000/v2/_catalog
技術分享圖片
查看httpd-test鏡像有哪些tags
curl http://192.168.2.225:5000/v2/httpd-test/tags/list
技術分享圖片
6、將本地鏡像打包成tar文件,保存到/tmp/目錄下
docker save -o /tmp/httpd-test-v3.tar 192.168.2.225:5000/httpd-test
技術分享圖片
參數說明:
save:將指定鏡像保存成tar歸檔文件
-o:目標文件,可使用絕對路徑和相對路徑
7、刪除已經打過包的本地鏡像
docker rmi -f 192.168.2.225:5000/httpd-test:v1 centos/httpd:test
技術分享圖片
8、從私有倉庫下載httpd-test鏡像
docker pull 192.168.2.225:5000/httpd-test:v1
技術分享圖片
9、創建並啟動容器
docker run -itd --privileged --restart=always --name httpd_test -p 80:80 192.168.2.225:5000/httpd-test:v1 /usr/sbin/init
技術分享圖片
註:具體參數使用請參考我的上一篇部署博文http://blog.51cto.com/andyxu/2174652
10、通過瀏覽器訪問http://192.168.2.226
技術分享圖片
能正常訪問到apache主頁,OK

Centos 7構建docker私有鏡像倉庫