zoukankan      html  css  js  c++  java
  • 13-5 Dockerfile讲解及演示

    首先需要编写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循环。

    以上就是解读。下面再来运行下

    结束

  • 相关阅读:
    5月29日实验报告
    实验报告(2019年4月30日)下半部分
    实验报告(2019年4月31日)
    实验报告(2019年4月17日)
    第五章 循环结构课后反思
    实验报告(2019年4月3日)
    第一次实验报告
    503小组第三章编程作业
    第九章 结构体与共用体
    第八章 指针实验
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/12885457.html
Copyright © 2011-2022 走看看