在上节的记录中Docker实战之创springbootWeb项目的镜像,有位朋友留言说:这样创建出来的镜像文件太大了!
在这边,我先解释下,文件大不是因为我们web项目中的文件或者依赖而导致了,主要原因是我们在创建镜像的时候,使用了FROMjava:8的原因,这个就像是java中的继承,从而把java的环境在build进去了,这样的话,比如你的企业中需要将项目发给其企业使用,我们就可以这样做,这样的话,其他企业仅仅可以使用,却不可以看到我们的源码!
在这节,我们先来初步的解决下,这位朋友的疑问,然后至于更多干货,更多知识,我们还是循序渐进的来推进;
好了,我们在这边的解决方法就是,将Dockerfile中的FROMjava:8改成FROMopenjdk,这个说一下,就好比是windows系统中的jdk,主要用于linux系统中;
好的,我们来实践一下:1、准备工作:还是使用上一节的web项目和修改后的Dockerfile;
2、上传到自己新建的目录下:
3、还是使用dockerbuild进行构建:dockerbuild-tlh66.
在这边解释一下,首先我们是进入到Dockerfile的当前文件夹中的,所以在使用build的时候,就不需要再次去写出DockerFile的路径了,但是这个时候,在最后面多了一个点,这个可不能丢了,这个就是代表处于当前文件夹的意思;
4、然后查看镜像,我们来和之前的那个镜像进行比较一下:大小是不是有明显的变化呢?
5、然后运行,来测试一下,时候和之前一样都是正常可以访问的呢:
怎么样,没有问题的吧,这个时候,我们就可以将这个镜像上传到dockerhub中,然后让有需要的人去直接pull下来,就可以直接运行使用了!
说到这里,还没有结束:还是在上节我有说道,让大家去试试如何将数据库的知识添加进来,然后构建镜像去访问一下,看看是否可以取到数据库中的值?不晓得,大家有没有实践一下?
话不多说,我在这边简单的演示一下,首先准备好简单的springboot项目和Dockerfile文件,然后还要使用mysql的镜像:
A、先看下这个boot项目的数据库和接口:需要创建一个mysql容器,端口是,密码是,然后创建数据库data1,接口是获得一个列表集合;
B、创建mysql进行,命令要是忘记的话,可以看下这节Docker数据卷之Mysql持久化;
C、然后,我们在mysql中创建data1数据库,并且看下,我们要访问的数据库中的数据:
D、ok,现在和上面的介绍一下,我去构建并且运行这个镜像:
如何看到结构了吧,可以正常的访问到数据,这个镜像我先不删除,大家可以使用公网也去访问看看:
到此结束,感谢大家的支持,需要源码,记得留言;但是,我还是希望大家可以耐下心来,去动手敲一敲代码!
最后,还是那句话:知识本该开源!