一、前言:
在使用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
参数注解:
run:启动
-d: 后台运行
-p 5000:5000 宿主机5000端口映射到容器5000端口(registry仓库默认开启5000端口)
--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!!!