• docker18.09.5 Dockerfile文件编写


    Dockerfile命令详解(超全版本)  https://www.cnblogs.com/dazhoushuoceshi/p/7066041.html 

    案例1

    dockerfile文件内容:

    FROM centos
    MAINTAINER jack
    COPY jdk1.7.0_79 jdk1.7.0_79
    ADD  springcloud-eureka.jar  springcloud-eureka.jar
    ENV JAVA_HOME=/jdk1.7.0_79
    ENV PATH=$JAVA_HOME/bin:$PATH
    ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    EXPOSE 8080
    ENTRYPOINT ["java","-jar","/springcloud-eureka.jar"]

    FROM:指定容器运行的基础镜像
    MAINTAINER:告诉Docker该镜像的作者是谁
    COPY:把构建目录下的jdk copy到运行容器中
    ADD:  add src dint    把宿主机下的src文件复制到容器的dint指定目标路径下
    ENV:配置jdk
    EXPOSE:告诉Docker服务端暴露端口,在容器启动时需要通过 -p 做端口映射
    ENTRYPOINT:当容器启动后执行的命令

    案例2

    FROM centos
    MAINTAINER jack
    ENV REFRESHED_AT 2018-3-13
    RUN yum update -y 
    RUN yum -y install wget
    WORKDIR /etc/yum.repos.d/
    RUN wget http://mirrors.aliyun.com/repo/epel-6.repo
    RUN yum -y install redis 
    EXPOSE 6379

     RUN  运行命令

    WORKDIR   指定进入容器后的默认路径

    ENV  定义一个变量,key  value键值对

    执行dockerfile文件

    docker build -t jack/redis .       //最后的.表示在当前目录下查找dockerfile文件。jack/redis是镜像命名, 查看镜像及版本命令: docker images

     CMD与ENTRYPOINT指令区别

    CMD[“/bin/bash”]
    效果跟在run后面加命令是一样的,只是run后面的命令会覆盖CMD中的命令
    Docker run –ti aff4057ca9cc  /bin/bash             //这里的aff4057ca9cc 是镜像ID
    在dockerfile中只能指定一条CMD指令。如果指定了多条,也只有最后一条CMD指令会被使用。

    ENTRYPOINT
    跟CMD命令类似,只是ENTRYPOINT中的命令,会跟run后面的命令叠加
    如: ENTRYPOINT[“usr/local/nginx”]
    Docker run –ti –d aff4057ca9cc –g “daemon off;” 。那么最后容器启动后,Nginx启动的命令是: usr/local/nginx  -g  “daemon off;”
    ENTRYPOINT[“usr/local/nginx”,”-g”,” daemon off;”]这样是一样的效果

  • 相关阅读:
    linux查看安装文件
    mysql 查询表结构
    linux回退到上次访问目录
    正则表达式匹配所有字符包括换行符
    Spring配置文件中使用表达式
    Ext 修改Store初始化加载完后修改record属性。
    数据库锁
    C#中的多线程使用 -- Thread 类详解(转)
    div背景等比例缩小
    div添加透明边框透明背景css
  • 原文地址:https://www.cnblogs.com/zhuwenjoyce/p/10782696.html
Copyright © 2020-2023  润新知