Dockerfile详解

环境置换
     可通过env设置环境变量,然后在Dockerfile中使用。
     用法:
  • ${variable:-word} 指示如果设置了变量,则结果将是该值。如果变量是不设置,那么这个word将是结果。
  • ${variable:+word} 指示如果变量设置为“设置”,则将是结果 ,否则结果为空字符串。

可使用环境置换的Dockerfile参数:ADD、COPY、ENV、EXPOSE、LABEL、USER、WORKDIR、VOLUME、STOPSIGNAL、ONBUILD

BUILD
docker build --no-cache 清除缓存

CMD

三种格式:

  • CMD ["executable","param1","param2"] (exec form, this is the preferred form)
  • CMD ["param1","param2"] (as default parameters to ENTRYPOINT)
  • CMD command param1 param2 (shell form)
.dockerignore file
说明:你可以添加一个 .dockerignore 文件到你的 `Dockerfile` , Docker 将会在发送构建上下文到守护进程时忽略在 .dockerignore 中指定的文件和目录。

# comment
    */temp*
    */*/temp*
    temp?

RUN
  • RUN <command>
  • RUN ["executable", "param1", "param2"] 

ENV

ENV <key> <value>
ENV <key>=<value> ...

For example:

ENV myName="John Doe" myDog=Rex\ The\ Dog \
    myCat=fluffy
ENTRYPOINT
  • ENTRYPOINT ["executable", "param1", "param2"] (exec form, preferred)
  • ENTRYPOINT command param1 param2 (shell form)

VOLUME

VOLUME ["/data"]
VOLUME ["/data1","/data2"]
HEALTHCHECK

HEALTHCHECK --interval=5m --timeout=3s \
  CMD curl -f http://localhost/ || exit 1

状态码:
  • 0: success - the container is healthy and ready for use
  • 1: unhealthy - the container is not working correctly
  • 2: reserved - do not use this exit code

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DockerfileDocker镜像构建的脚本文件,通过Dockerfile文件可以定义镜像的构建过程,包括基础镜像、软件安装、环境变量设置、运行命令等。 Dockerfile的基本语法如下: ``` # Comment INSTRUCTION arguments ``` 其中,#后面的内容为注释,INSTRUCTION为指令,arguments为指令的参数。 常用的指令包括: - FROM:指定基础镜像 - MAINTAINER:指定镜像维护者信息 - RUN:执行命令,可以用\换行 - CMD:指定容器启动时执行的命令,可以被docker run的命令行参数覆盖 - ENTRYPOINT:指定容器启动时执行的命令,不能被docker run的命令行参数覆盖 - EXPOSE:指定容器中的应用监听的端口 - ENV:设置环境变量 - ADD:将本地文件或目录复制到容器中 - COPY:将本地文件或目录复制到容器中,与ADD不同的是,COPY只复制文件,不会自动解压缩文件 - VOLUME:指定容器中的数据卷 - USER:指定容器中的用户 - WORKDIR:指定容器中的工作目录 一个简单的Dockerfile示例: ``` # Use an official Python runtime as a parent image FROM python:2.7-slim # Set the working directory to /app WORKDIR /app # Copy the current directory contents into the container at /app COPY . /app # Install any needed packages specified in requirements.txt RUN pip install --trusted-host pypi.python.org -r requirements.txt # Make port 80 available to the world outside this container EXPOSE 80 # Define environment variable ENV NAME World # Run app.py when the container launches CMD ["python", "app.py"] ``` 以上Dockerfile的作用是: - 使用Python 2.7镜像作为基础镜像 - 设置工作目录为/app - 将当前目录下的文件复制到容器的/app目录下 - 安装requirements.txt中指定的Python依赖库 - 暴露容器的80端口 - 设置环境变量NAME为World - 启动app.py。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值