一、前言:
在使用maven管理jar包依賴的時候,為了避免每次都從中央倉庫拉取依賴包,使用了nexus做了代理倉庫。
docker鏡像倉庫與nexus私服倉庫作用類似,用於將打包好的鏡像保存在倉庫中方便各開發生產環境鏡像拉取存儲,減輕環境部署需要的相應操作。
Docker鏡像操作,有五個常用的命令:
a、拉取鏡像,后跟鏡像倉庫名稱,如果要指定某個版本,可以帶上tag。
docker pull <repo>[:tag]
b、列出所有鏡像,能得到鏡像的相關基本信息。
c、刪除鏡像。可以根據鏡像ID,或者鏡像倉庫名稱進行刪除。
docker rmi <IMAGE ID>/<repo>
d、鏡像打標。可以將此操作與Git打標進行類比,相當於是release一個可用的鏡像版本。
docker tag <repo> <new_repo>[:tag]
e、鏡像推送。同樣是可以借鑒Git領域的push操作,將打包好的鏡像推送給遠程倉庫(即為Docker Registry)。
docker push <new_repo>[:tag]
以上命令均為docker基礎命令,在使用鏡像倉庫拉取鏡像推送鏡像等操作都需要用到如上都些許命令
二、鏡像倉庫安裝:
a、從docker倉庫拉取registry私服倉庫鏡像
b、registry倉庫安裝
docker run -d -p 5000:5000 --name myregistry --restart=always registry:2
docker run -d -p 5000:5000 -v /Users/mac/docker-registry:/var/lib/registry --restart always --name registry registry:2
參數注解:
run:啟動
-d: 后台運行
-p 5000:5000 宿主機5000端口映射到容器5000端口(registry倉庫默認開啟5000端口)
-v 掛載鏡像存儲地址,默認使用匿名數據卷,這里映射為主機目錄
--name myregistry 容器重命名
--restart=always 重啟設置
registry[:tag] 需要啟動到倉庫名稱(不添加tag,默認拉取最新版:latest)
c、啟動后查看如下
三、docker添加私服倉庫地址(注:如搭建docker集群需要給每台docker環境進行如下操作)
a、docker環境添加鏡像倉庫
vi /etc/docker/daemon.json #沒有目錄自己創建
{ "insecure-registries":["bxy-registry:5000"] }
vi /etc/hosts #添加主機名映射
192.168.75.191 bxy-registry
b、重啟docker容器,查看registry是否添加
systemctl daemon-reload #重載docker配置
systemctl restart docker #重啟docker服務
docker info #查看docker信息確認倉庫是否添加
四、鏡像推送&拉取
a、master服務器推送tomcat鏡像測試(masterIP:192.168.75.191)
docker pull tomcat #拉取tomcat鏡像
docker tag <repo> <new_repo>[:tag]
docker tag tomcat bxy-registry:5000/tomcat:v1 #tag操作
docker push bxy-registry:5000/tomcat:v1 #推送鏡像
curl 192.168.75.191:5000/v2/_catalog #查看倉庫中是否存在tomcat鏡像
curl 192.168.75.191:5000/v2/tomcat/tags/list #查看鏡像版本號
b、node節點添加master鏡像倉庫,並拉取tomcat鏡像進行測試(節點服務器192.168.75.192)
docker pull bxy-registry:5000/tomcat:v1 #tomcat鏡像拉取
tomcat鏡像拉取成功。說明鏡像倉庫搭建沒毛病,且docker集群均從倉庫中拉取鏡像
over!!!
原文: https://www.cnblogs.com/mybxy/p/11249385.html