Dockerfile学习总结

一、作用

Docker build命令通过Dockerfile和相关的上下文构建Docker镜像。

docker build -f /path/to/a/Dockerfile  #指定用哪个Dockerfile进行镜像构建
docker build -t shykes/myapp           #指定构建好镜像的存储位置
docker build -t shykes/myapp:1.0.2 -t shykes/myapp:latest  #构建好的镜像存储为多个版本

二、相关关键字

escape     指定Dockerfile的转义符,默认是\
.dockerignore    构建镜像是忽略的文件或目录;! 表示例外
FROM    Dockerfile必须以FROM指令开始,为随后的指令导入一个基础镜像;与ARG的关系,支持引用在第一个FROM指令前声明的任何变量
RUN    运行任意指令并把生成的结果运用于dockfile的下一步
CMD    每个Dockerfile文件中只能有一个CMD命令,如果有多个CMD的命令的话,只有最后一个生效。其主要目的为执行容器时提供一个默认值
LABEL    为镜像添加一个元数据
MAINTAINER(不建议使用)    为生成的镜像设置一个作者
EXPOSE    曝露容器在运行时的内部网络端口
ENV    设置环境变量
ADD    从源文件中添加文件、目录或远程文件到目的目录中
COPY    从源文件拷贝文件到目的目录中
ENTRYPOINT    用可执行文件来配置容器
VOLUME    用指定的名字做一个挂载点并标记为宿主机或其它容器的外部扩展分区
USER    设定镜像运行时的用户名或用户群组
WORKDIR    指定dockerfile中相关指令的工作路径
ARG    定义docker build时传递给构建器的变量
ONBUILD    为镜像添加触发器
STOPSIGNAL    设置容器退出的调用信号
HEALTHCHECK    检查容器是否正常运行
SHELL    允许用shell命令覆盖默认的shell命令

三、相关模板

FROM java8:latest
MAINTAINER Yuhongxi <yuhongxi@flashhold.com>

ENV JAVA_OPTIONS="-XX:+UnlockExperimentalVMOptions -XX:MaxDirectMemorySize=400M -XX:+UseContainerSupport -XX:MaxRAMPercentage=80.0 -XX:InitialRAMPercentage=50.0 -XX:MinRAMPercentage=50.0 -XshowSettings:vm"
ENV JAVA_OPTIONS_EXT="-XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/evo-rcs/logs/heapdump.hprof -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5009"

RUN mkdir -p  /opt/evo-rcs
COPY ./target/evo-rcs.jar /opt/evo-rcs/evo-rcs.jar
WORKDIR /opt/evo-rcs
CMD java ${JAVA_OPTIONS} ${JAVA_OPTIONS_EXT} -jar evo-rcs.jar

EXPOSE 9001
EXPOSE 7070
EXPOSE 5009

HEALTHCHECK --start-period=150s --interval=30s --timeout=10s CMD curl -f http://localhost:9001/actuator/info || exit 1

CMD与ENTRYPOINT差异:
1、如果 Dockerfile的用途是运行应用程序或服务,比如运行一个 MySQL,应该优先使用 Exec 格式的 ENTRYPOINT 指令。CMD 可为 ENTRYPOINT 提供额外的默认参数,同时可利用 docker run 命令行替换默认参数;
2、如果想为容器设置默认的启动命令,可使用 CMD 指令。用户可在 docker run 命令行中替换此默认命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嘎七马八

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值