zoukankan      html  css  js  c++  java
  • 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;”]这样是一样的效果

  • 相关阅读:
    hadoop作业
    爬虫综合大作业
    爬取全部校园新闻
    理解爬虫原理
    中文词频统计与词云生成
    复合数据类型,英文词频统计
    字符串操作、文件操作,英文词频统计预处理
    了解大数据的特点、来源与数据呈现方式
    Hadoop综合大作业
    分布式文件系统HDFS
  • 原文地址:https://www.cnblogs.com/zhuwenjoyce/p/10782696.html
Copyright © 2011-2022 走看看