怎么用DockerFile定制属于自己的专属镜像


本篇内容主要讲解“怎么用DockerFile定制属于自己的专属镜像”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用DockerFile定制属于自己的专属镜像”吧!在这之前,我们需要知道dockerfile ,因为我们就是通过dockerfile 来创建镜像的。那dockerfile 是什么呢? dockerfile 是一个文件,文件里面是我们写的一条条的指令,然后通过docker build 命令来构建一个镜像。 现在难就难在这个指令怎么写,所以接下让我们一起看看dockfile 指令吧。from 指令是依赖的基础镜像,所谓的定制镜像,是在其他的镜像上添加一些我们自己东西,定制成我们自己的镜像。当然我们也可以不依赖任何镜像,自己从头开始搭建。那就使用scratch 其实也是一个docker 镜像,但是这个镜像比较难特殊,它是一个虚拟镜像,里面什么都没有,是一个空白的镜像,所以如果想不依赖任何镜像,可以使用from scratch。那现在又有一个问题了,dockfile 文件中可以出现多个From 么?在docker 17.05 版本之前是不支持出现多个From 的,一个dockefile只能有一个From 指令,且必须放在文件中的第一行。因为作为基础镜像使用。在docker17.05 后支持多From 。表示构建的多重阶段,不过最终生成的镜像还是以最后一个From 基础镜像为基础的。run 指令 是表示在镜像构建时运行的指令。 两种格式:复制文件的指令add 是更高级的复制。copy 有的功能它都用,它还能访问网络资源,源路径可以是一个URL。源路径文件也可以是一个压缩文件,可以直接解压。 所以如果想要直接复制一个压缩包进去的话,就要使用COPY 而不能只用ADD了。 官方建议是能使用COPY 的就使用COPY ,因为COPY 命令语义比较明确就是复制文件,并且ADD 指令会使得镜像构建缓存失效,使得镜像构建比较缓慢。cmd 指令是表示在运行容器时执行的指令。entrypoint 入口点entryPoint 指令和 cmd 指令功能类似,不过entrypoint 可以让镜像变成像命令一样使用,可以做应用运行前的准备工作。这个具体的后面讲。env 是设置环境变量的指令,arg 用于构建时传递的参数定义匿名卷申明端口这里需要注意的是,expose 是申明容器应用端口,但是容器运行是并不一定就是开启这个端口提供服务。在dockerfile 中写入端口申明有两个好处,一是当做镜像服务的守护端口,方便映射,二是在运行时使用随机端口映射时,就会映射的expose设置的端口上。好了,指令当然不止这些,更多的想了解的查看:https://docs.docker.com/engine/reference/builder/之前这篇文章写到一半放下了,因为中间docker出了一点问题,下载镜像一直提示超时,然后设置了国内加速,才弄好。 上面我们了解了Dockerfile 指令,接下来就让我们先做一个简单的测试吧。 我们穿件一个springboot项目。创建一个HelloCont开发云主机域名roller 类。然后打成jar 包。放到我们服务器的文件夹下。 并且在文件下创建Dockerfile文件可以看到用到的命令都是我们上面介绍的。java8作为基础镜像,/tmp作为数据卷, add 将本地jar包添加到镜像中,entrypoint 运行我们的jar包。在该目录下构建镜像现在,最后面的点别忘记了。可以看到我们的镜像分4不构建,也就是构建四个镜像,因为我们Dockerfile 中有四条指令。前面说了后一条指令是在前一条指令的基础上构建镜像的。所以这四个镜像中前面三个就是中间镜像了。我们现在看看我们创建的镜像。 我们接下来启动镜像其中 -d 是后台启动,-p 是映射端口,前面的是我们设置的端口,后面是项目运行的端口。 启动后我们在浏览器上访问下。这样我们通过docker 构建我们springboot 的项目,创建属于我们自己的镜像就完成了。我们现在要做的是,直接通过idea打包生成docker镜像。所以,第一步开启docker的远程访问,我的docker 是安装到服务器上的。我先在本地检测一下,服务器上的docker 是否开启的远程访问。说明是没有开启docker的远程服务的。所以进入服务器。 执行如下操作,在docker.service. 文件夹下创建一个http-proxy.conf文件.文件内容然后重启daemon和docker然后我们再 在本地测试一下。说明docker 的远程访问已经配置好了。 我们打开我们的hello 项目,在pom.xml 中增加配置在build 中增加。在src/main/docker 中创建Dockerfile 文件,文件内容上面Dockerfile 内容一样因为我们配置在构建的时候就会进行docker 打包。所以我们知己运行mvn package控制台查看是打包成功的。 我们去服务器上看下,有没有 可以看到已经成功了。到此,相信大家对“怎么用DockerFile定制属于自己的专属镜像”有了更深的了解,不妨来实际操作一番吧!这里是开发云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: HBase体系结构是怎么样的

这篇文章给大家分享的是有关HBase体系结构是怎么样的的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。HBase是Apache hadoop集群中常用的非关系型数据,它是一种开源的、分布式的、多版本、面向列存储的数据库。 它的源码在 …

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 05/30 19:40
下一篇 05/30 19:40

相关推荐