首页 > 其他 > 详细

13-5 Dockerfile讲解及演示

时间:2020-05-14 00:15:44      阅读:44      评论:0      收藏:0      [点我收藏+]

首先需要编写DokcerFile文件
技术分享图片
整体的三个步骤
技术分享图片

技术分享图片
FROM指令,相对比较特殊。docker里面的东西理论上都是运行在操作系统之上的。所以一般我们docker都会有基础镜像,这些基础镜像大部分都是以比如说centOS、linux啊、windows啊类似于这样的东西为主。 涉及到docker里面的分层。
技术分享图片
FROM的意思,这次我们的基础镜像是centos的版本是7.1.1503 这个是我们在官方镜像的仓库上找到的。
技术分享图片
官方镜像,直接搜索centos
技术分享图片

提供了很多的版本。这里选择的是7,因为当前主流的版本是7
技术分享图片

技术分享图片
ENV是设置环境变量
技术分享图片 
这里就是设置了语言版本是中文的utf-8。USE root表示使用的是哪一个用户。
技术分享图片
创建多级目录。就假设docker就是一个空的centos系统。分别创建了三个目录,分别叫做。jingzh/env、jiangzh/workspace、jiangzh/bin
RUN就表示后面是一个可执行命令,
技术分享图片
把当前文件夹下的jdk、jar包、shell脚本,分别拷贝在jiangzh/env/jdk.
前面是真实的地址,后面是docker里面的地址。
技术分享图片
这是准备好的文件。这些文件是在本地的仓做系统上,所以说上面的命令是复制本地的文件到docker的centos里
技术分享图片
ADD会把压缩包拷贝到jiangzh/env/jdk的目录下,同时给它解压。而COPY命令不负责解压,COPY就是拷贝到对应的目录下。
技术分享图片
JDK的安装除了解压,还需要定义我们的环境变量,就是我们的java_home.
所以我们用ENV定义环境变量:JAVA_HOME 后面对应的是值。
技术分享图片
上面的压缩包解压出来的名字就是jdk1.8.0_181
技术分享图片
同时在最后还做了一个env。在centos里面,我们需要把java_home的配置文件加到Path目录下才能生效。
技术分享图片
把我们的工作目录设置为/home/jiangzh .这一步的目录注意是我们docker镜像里面的目录。也就是默认这个docker进来,就在home/jiangzh这个目录下。
技术分享图片
暴露的端口号。docker和我们真实的操作系统之间本身是虚拟化隔离出来的。虽然它是轻量级的隔离,但是它也是隔离了。所以它自成一个小世界,里面跑了一个centos系统。这个centos里面,我们会跑各种各样的东西。它们都会有对应的端口号,如果你想要宿主机,我们管我们的物理机叫做宿主机。如果你想要宿主机可以访问到docker镜像里面的某一个端口,这个时候就必须把这个EXPOSE加上,这样docker就可以默认对外输出一个8761的端口,而我们的eurekaServer的端口默认就是8761
技术分享图片
把bin目录下所有的shell添加一个执行的权限。
技术分享图片
ENTRYPOINT:表示在dokcer启动的时候,我要做什么事情。下面这句话的意思是我要在docker启动的时候运行bin目录下的entrypoint.sh这个shell脚本。注意这个bin目录是一个相对路径。
技术分享图片
因为我的WORKDIR是在/home/jiangzh/这个目录下,所以相对目录就是在/home/jiangzh/目录下的bin
技术分享图片
而这个脚本呢 是上面复制进来的
技术分享图片

entrypoint

技术分享图片
标准的是shell脚本开头
技术分享图片

定义一个环境变量叫做 SHELL_BASE 就是我的根目录
技术分享图片
/home/jiangzh/bin目录,所有待执行的脚本其实都在这个目录下。
技术分享图片

在dockerfile里面,我们把eureka的jar包放在了workspace目录下
技术分享图片

相当于运行java-jar
技术分享图片
运行的是eurekaServer的jar包。最后面的&是结束符。
技术分享图片
紧接着,这里有个for循环。没修5秒休息一次 。这是个死循环。因为docker本身是轻量级的一个技术。它里面的主进程如果挂掉了,这个dokcer自然而然就退出了。所以我们不需要这个docker退出,哪怕它有问题也不希望它退出。
技术分享图片
所以把下面这个东西定义为了主线程,它会一直跑,从来不退出,所以docker不会轻易的退出。所以在这里定义了一个无线循环的for循环。
技术分享图片
以上就是解读。下面再来运行下

结束

 

13-5 Dockerfile讲解及演示

原文:https://www.cnblogs.com/wangjunwei/p/12885457.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!