dockerfile的语法和指令

dockerfile是什么?

Dockerfile 是由一系列指令和参数构成的脚本,一个 Dockerfile 里面包含了构建整个镜像的完整命令。通过 docker build 执行 Dockerfile 中的一系列指令自动构建镜像。

常用指令

  • FROM:基础镜像,FROM 命令必须是 Dockerfile的首个命令
  • LABEL:为镜像生成元数据标签信息
  • USER:指定运行容器时的用户名或 UID,后续 RUN 也会使用指定用户。
  • RUN:RUN 是Dockerfile 行的核心部分。它接受作为参数并用于创建镜像。每条 RUN 在当前基础像上执行,并且会提交一个新镜像层
  • WORKDIR:设置 CMD 指明的命今的运行目录。为后续的 RUN、CMD、ENTRYPOINT、ADD 指配置工作目录
  • ENV:容器启动的环境变量
  • ARG:构建环境的环境变量-dockerfile使用
  • COPY:复制文件
  • CMD: 容器运行时执行的默认命令,容易被覆盖,可以用ENTRYPOINT
  • ENTRYPOINT:指定容器的”入口”
  • HEALTHCHECK: 容器健康状态检查

示例:

#可指定版本,也可不指定,不指定为latest
FROM nginx

#设置标签,创作者信息等
LABEL maintainer="test.com"

#设置环境变量
ENV nginx_version latest
ARG work_pwd=/tmp/dockertest

#执行命令
RUN apt-get -yq update && apt-get install -y curl && \
ln -sf /dev/stdout /var/log/nginx/access.log && \
ln -sf /dev/stderr /var/log/nginx/error.log

# 挂载卷
VOLUME ["/data"]

#设置工作目录
WORKDIR $work_pwd

#设置容器运行时的监听端口
EXPOSE 8088

#此处 CMD 作为 ENTRYPOINT 的参数
CMD ["nginx","-g","daemon off;"]

STOPSIGNAL SIGRTMAX
HEALTHCHECK --interval=5s --timeout=3s CMD curl -fs http://localhost/ || exit 1

你可能感兴趣的:(Docker,工具,linux,运维,docker)