zoukankan      html  css  js  c++  java
  • Docker学习第四天(Dockerfile)

    dockerfile

    Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本

    Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。它们简化了从头到尾的流程并极大的简化了部署工作。Dockerfile从FROM命令开始,紧接着跟随者各种方法,命令和参数。其产出为一个新的可以用于创建容器的镜像。

    Docker保留字指令

    FROM    基础镜像,当前新镜像是基于哪个镜像的

    MAINTAINER 镜像维护者的姓名和邮箱地址

    RUN     容器构建时需要运行的命令

    CMD    指定一个容器启动时要运行的命令(Dockerfile 中可以有多个 CMD 指令,但只有最后一个生效,CMD 会被 docker run 之后的参数替换)

    ENTRYPOINT指定一个容器启动时要运行的命令(ENTRYPOINT 的目的和 CMD 一样,都是在指定容器启动程序及参数)

    EXPOSE   当前容器对外暴露出的端口

    ENV     用来在构建镜像过程中设置环境变量

    ADD     将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包

    COPY     类似ADD,拷贝文件和目录到镜像中。(将从构建上下文目录中 <源路径> 的文件/目录复制到新的一层的镜像内的 <目标路径> 位置)

    VOLUME  容器数据卷,用于数据保存和持久化工作(设置用于将目录下的内容存储到主机而非容器)

    USER    用于设置运行命令的用户账号.       p77

    WORKDIR 指定在创建容器后,终端默认登陆的进来工作目录。

    ONBUILD     当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发

    自定义定制化tomcat

    /xiaohua/tomcat8目录下要有两个包 

    dockerfile文件内容

    FROM         centos
    MAINTAINER    xiaohua<xhds@126.com>
    #把宿主机当前上下文的c.txt拷贝到容器/usr/local/路径下
    COPY c.txt /usr/local/cincontainer.txt
    #把java与tomcat添加到容器中
    ADD jdk-8u241-linux-x64.tar.gz /usr/local/
    ADD apache-tomcat-8.5.53.tar.gz /usr/local/
    #安装vim编辑器
    RUN yum -y install vim
    #设置工作访问时候的WORKDIR路径,登录落脚点
    ENV MYPATH /usr/local
    WORKDIR $MYPATH
    #配置java与tomcat环境变量
    ENV JAVA_HOME /usr/local/jdk1.8.0_241
    ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.53
    ENV CATALINA_BASE /usr/local/apache-tomcat-8.5.53
    ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
    #容器运行时监听的端口
    EXPOSE  8080
    #启动时运行tomcat
    # ENTRYPOINT ["/usr/local/apache-tomcat-8.5.53/bin/startup.sh" ]
    # CMD ["/usr/local/apache-tomcat-8.5.53/bin/catalina.sh","run"]
    CMD /usr/local/apache-tomcat-8.5.53/bin/startup.sh && tail -F /usr/local/apache-tomcat-8.5.53/bin/logs/catalina.out
    docker build -f /xiaohua/tomcat8/dockerfile -t tomcat8  .  //构建镜像文件

    docker run -d -p 9080:8080 --name tomcat666 
    -v /xiaohua/mydockerfile/tomcat9/test:/usr/local/apache-tomcat-8.5.53/webapps/test
    -v /xiaohua/mydockerfile/tomcat9/tomcat9logs/:/usr/local/apache-tomcat-8.5.53/logs --privileged=true tomcat8
  • 相关阅读:
    构造代码块/局部代码块/静态代码块
    经典设计模式之:单例设计模式
    JS对表单的操作
    单例模式详解:懒汉式与饿汉式
    win10获取超级管理员权限脚本实现
    CIA 读书笔记
    Google Code Jam 2014 资格赛:Problem D. Deceitful War
    Google Code Jam 2014 资格赛:Problem C. Minesweeper Master
    Google Code Jam 2014 资格赛:Problem B. Cookie Clicker Alpha
    Google Code Jam 资格赛: Problem A. Magic Trick
  • 原文地址:https://www.cnblogs.com/xhds/p/12547903.html
Copyright © 2011-2022 走看看