美文网首页
Dockerfile语法解析

Dockerfile语法解析

作者: ananRunner | 来源:发表于2019-12-23 17:50 被阅读0次

    FROM

    指定基础镜像,比如FROM centos:7

    FROM centos:7
    

    RUN

    在镜像内部执行一些命令,比如安装软件,配置环境等等,执行可以使用""

    RUN groupadd -r mysql && useradd -r -g mysql mysql
    

    ENV

    设置变量的值,ENV MYQL_MAJOR 5.7,可以通过docker run --e key=value修改,后面可以直接使用${YSQL_MAJOR}

    ENV MYSQL_MAJOR 5.7
    

    LABEL

    设置镜像标签

    LABEL email ="timor@163.com"
    LABEL name = "timor"
    

    VOLUME

    指定数据的挂载目录

    VOLUME /var/lib/mysql
    

    COPY

    将主机的文件复制到镜像内,如果目录不存在,会自动创建所需要的目录,注意只是复制,不会提取和解压

    COPY springboot.jar /opt/springboot/
    

    ADD

    将主机的文件复制到镜像内,和COPY类似,只是ADD会对压缩文件提取和解压

    ADD application.yml /etc/
    

    WORKDIR

    指定镜像的工作目录,之后的命令都是基于此目录工作,若不存在则创建

    WORKDIR /usr/local
    WORKDIR tomcat
    RUN touch demo.txt
    

    会在/usr/local/tomcat下创建demo.txt

    WORKDIR /root
    ADD app.yml test/
    

    会在/root/test下多出一个app.yml文件

    CMD

    容器启动的时候默认会执行的命令,若有多个CMD命令,则最后一个生效

    CMD ["mysql"]
    或
    CMD mysql
    

    ENTRYPOINT

    和CMD的使用类似

    ENTRYPOINT ["docker-entrypoint.sh"]
    

    和CMD的不同 docker run 执行时,会覆盖CMD的命令,而ENTRYPOINT不会。

    EXPOSE

    指定镜像要暴露的端口,启动镜像时,可以使用-p 将该端口映射给宿主机

    EXPOSE 3306
    

    Dockerfile实战Springboot项目

    1.在docke环境中新建一个目录 "springboot"

    mkdir springboot
    
    1. 上传"springboot.jar"到该目录下,并且在此目录创建Dockerfile文件
    2. 创建Dockerfile文件,编写内容
    FROM openjdk:8 
    MAINTAINER timor 
    LABEL name="springboot" version="1.0" author="timor" 
    COPY springboot-demo.jar springboot.jar 
    CMD ["java","-jar","springboot.jar"]
    
    1. 基于Dockerfile构建镜像
    docker build -t spring-boot-image .
    
    1. 基于image创建container
    docker run -d --name springboot -p 8081:8080 spring-boot-image
    
    1. 查看启动日志
    docker logs springboot --tail=100 -f -t
    
    1. 在宿主机上访问
    curl  localhost:8081/dockerfile
    
    1. 再次启动一次
    docker run -d --name springboot2 -p 8082:8080 spring-boot-image
    

    相关文章

      网友评论

          本文标题:Dockerfile语法解析

          本文链接:https://www.haomeiwen.com/subject/nykozftx.html