最近docker官网仓库好似被禁了,淘宝等好似也要用加速器之类的才能拉到镜像,对于直接从远端仓库拉取基础镜像打包本地镜像的,并不友好,jib默认是从官方仓库拉取镜像,之前能用程序也未有改动,也就并未在意,最近需要改点东西,也才发觉拉不下来基础镜像,也懒得搞什么加速器之类,主要是没深入,所以想到把基础镜像发布到本地仓库,这样打包也不用联网。
Jib插件确实是个挺好的玩意儿,方便docker容器化部署,只需要配置即可,跟dockerfile是一样一样的功能,具体配置大同小异,网上一搜都有,不赘述了。
一,构建本地镜像仓库
拉取外部镜像,还是得配置加速器之类的,网上随便找的,然后添加本地ip进docker配置,
如果是构建本地仓库,用127.0.0.1即可,我觉得方便,5000是默认端口,这是后期打包本地镜像名称用。
执行docker pull registry:latest,或者docker pull registry应该也是一样,拉取仓库的镜像;
用docker images查看本地镜像可找到registry镜像
docker run把镜像运行起来,docker ps -a可以查看registry运行情况。
二、把程序应用基础镜像拉取到本地改名并推送本地仓库
基础镜像就像一个环境载体,什么open jdk,tomcat之类的镜像,集成了运行环境,spring boot程序基于这个镜像打包生成一个可运行的镜像。
这里用到的tomcat:9.0-jre8-alpine,docker pull tomcat:9.0-jre8-alpine,并用docker tag tomcat:9.0-jre8-alpine 127.0.0.1:5000/tomcat:9.0-jre8-alpine把这个命名为本地ip开头的名称,这样本地就有两个不同名称的tomcat镜像
再执行docker push 127.0.0.1:5000/tomcat:9.0-jre8-alpine,镜像就会自动推送到本地仓库里了。
三、配置Jib
在from-image中,镜像名用127.0.0.1:5000/tomcat:9.0-jre8-alpine,于是jib便会从本地仓库拉取tomcat镜像并打包生成新的镜像,本地就不用账号密码,allowInsecureRegistries标签可以开启
用dockerbuild打包日志可以看到,从本地拉取了基础镜像,极大方便我们的部署。
浅尝辄止,希望帮到有需要的人,see u!